From 2a5fb6981e41989116f4a528d4c36506f44630d0 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sat, 25 Nov 2023 10:38:54 +0000 Subject: [PATCH] Auto-generated commit --- base/ind/README.md | 45 ++++-- base/ind/benchmark/benchmark.factory.js | 153 +++++++++++++++++++ base/ind/benchmark/benchmark.js | 10 +- base/ind/docs/repl.txt | 35 +++++ base/ind/docs/types/index.d.ts | 134 ++++++++++++++++- base/ind/docs/types/test.ts | 64 +++++++- base/ind/lib/factory.js | 163 +++++++++++++++++++++ base/ind/lib/index.js | 21 +++ base/ind/test/test.factory.js | 186 ++++++++++++++++++++++++ base/ind/test/test.js | 107 +------------- base/ind/test/test.main.js | 137 +++++++++++++++++ dist/index.js | 2 +- dist/index.js.map | 8 +- ind2sub/docs/types/index.d.ts | 4 + 14 files changed, 943 insertions(+), 126 deletions(-) create mode 100644 base/ind/benchmark/benchmark.factory.js create mode 100644 base/ind/lib/factory.js create mode 100644 base/ind/test/test.factory.js create mode 100644 base/ind/test/test.main.js diff --git a/base/ind/README.md b/base/ind/README.md index acecf78c..19c263e9 100644 --- a/base/ind/README.md +++ b/base/ind/README.md @@ -55,17 +55,9 @@ idx = ind( -1, 9, 'throw' ); idx = ind( 10, 9, 'throw' ); // throws -``` - -The function supports the following modes: - -- **throw**: specifies that the function should throw an error when an index is outside the interval `[0, max]`. -- **normalize**: specifies that the function should normalize negative indices and throw an error when an index is outside the interval `[-max-1, max]`. -- **wrap**: specifies that the function should wrap around an index using modulo arithmetic. -- **clamp**: specifies that the function should set an index less than `0` to `0` (minimum index) and set an index greater than `max` to `max`. -```javascript -var idx = ind( 2, 9, 'wrap' ); +// Wrapping indices around using modulo arithmetic: +idx = ind( 2, 9, 'wrap' ); // returns 2 idx = ind( 10, 9, 'wrap' ); @@ -74,6 +66,7 @@ idx = ind( 10, 9, 'wrap' ); idx = ind( -1, 9, 'wrap' ); // returns 9 +// Clamping indices to first and last indices: idx = ind( 2, 9, 'clamp' ); // returns 2 @@ -83,6 +76,7 @@ idx = ind( 10, 9, 'clamp' ); idx = ind( -1, 9, 'clamp' ); // returns 0 +// Normalizing negative indices: idx = ind( 2, 9, 'normalize' ); // returns 2 @@ -90,6 +84,28 @@ idx = ind( -4, 9, 'normalize' ); // returns 6 ``` +#### ind.factory( mode ) + +Returns a function for returning an index according to a provided index `mode`. + +```javascript +var fcn = ind.factory( 'clamp' ); + +var idx = fcn( 2, 9 ); +// returns 2 + +idx = fcn( 10, 9 ); +// returns 9 + +idx = fcn( -1, 9 ); +// returns 0 +``` + +The function returns a function accepts the following arguments: + +- **index**: input index. +- **max**: maximum index value. + @@ -98,6 +114,15 @@ idx = ind( -4, 9, 'normalize' );
+## Notes + +- Both functions support the following modes: + + - **throw**: specifies that the function should throw an error when an index is outside the interval `[0, max]`. + - **normalize**: specifies that the function should normalize negative indices and throw an error when an index is outside the interval `[-max-1, max]`. + - **wrap**: specifies that the function should wrap around an index using modulo arithmetic. + - **clamp**: specifies that the function should set an index less than `0` to `0` (minimum index) and set an index greater than `max` to `max`. +
diff --git a/base/ind/benchmark/benchmark.factory.js b/base/ind/benchmark/benchmark.factory.js new file mode 100644 index 00000000..fdd25c01 --- /dev/null +++ b/base/ind/benchmark/benchmark.factory.js @@ -0,0 +1,153 @@ +/** +* @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 isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive; +var isFunction = require( '@stdlib/assert/is-function' ); +var pkg = require( './../package.json' ).name; +var factory = require( './../lib' ).factory; + + +// MAIN // + +bench( pkg+':factory', function benchmark( b ) { + var modes; + var out; + var i; + + modes = [ + 'throw', + 'clamp', + 'wrap', + 'normalize' + ]; + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + out = factory( modes[ i%modes.length ] ); + if ( typeof out !== 'function' ) { + b.fail( 'should return a function' ); + } + } + b.toc(); + if ( !isFunction( out ) ) { + b.fail( 'should return a function' ); + } + b.pass( 'benchmark finished' ); + b.end(); +}); + +bench( pkg+':factory:mode=clamp', function benchmark( b ) { + var ind; + var out; + var idx; + var i; + + ind = factory( 'clamp' ); + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + idx = (i%100) - 50; + out = ind( idx, 10 ); + if ( out !== out ) { + b.fail( 'should not return NaN' ); + } + } + b.toc(); + if ( !isNonNegativeInteger( out ) ) { + b.fail( 'should return a nonnegative integer' ); + } + b.pass( 'benchmark finished' ); + b.end(); +}); + +bench( pkg+':factory:mode=wrap', function benchmark( b ) { + var ind; + var out; + var idx; + var i; + + ind = factory( 'wrap' ); + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + idx = (i%100) - 50; + out = ind( idx, 10 ); + if ( out !== out ) { + b.fail( 'should not return NaN' ); + } + } + b.toc(); + if ( !isNonNegativeInteger( out ) ) { + b.fail( 'should return a nonnegative integer' ); + } + b.pass( 'benchmark finished' ); + b.end(); +}); + +bench( pkg+':factory:mode=throw', function benchmark( b ) { + var ind; + var out; + var idx; + var i; + + ind = factory( 'throw' ); + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + idx = i % 11; + out = ind( idx, 10 ); + if ( out !== out ) { + b.fail( 'should not return NaN' ); + } + } + b.toc(); + if ( !isNonNegativeInteger( out ) ) { + b.fail( 'should return a nonnegative integer' ); + } + b.pass( 'benchmark finished' ); + b.end(); +}); + +bench( pkg+':factory:mode=normalize', function benchmark( b ) { + var ind; + var out; + var idx; + var i; + + ind = factory( 'normalize' ); + + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + idx = (i%21) - 10; + out = ind( idx, 10 ); + if ( out !== out ) { + b.fail( 'should not return NaN' ); + } + } + b.toc(); + if ( !isNonNegativeInteger( out ) ) { + b.fail( 'should return a nonnegative integer' ); + } + b.pass( 'benchmark finished' ); + b.end(); +}); diff --git a/base/ind/benchmark/benchmark.js b/base/ind/benchmark/benchmark.js index 036c288b..51be72b2 100644 --- a/base/ind/benchmark/benchmark.js +++ b/base/ind/benchmark/benchmark.js @@ -21,8 +21,6 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); -var floor = require( '@stdlib/math/base/special/floor' ); var isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive; var pkg = require( './../package.json' ).name; var ind = require( './../lib' ); @@ -37,7 +35,7 @@ bench( pkg+':mode=clamp', function benchmark( b ) { b.tic(); for ( i = 0; i < b.iterations; i++ ) { - idx = floor( randu()*100.0 ) - 50.0; + idx = (i%100) - 50; out = ind( idx, 10, 'clamp' ); if ( out !== out ) { b.fail( 'should not return NaN' ); @@ -58,7 +56,7 @@ bench( pkg+':mode=wrap', function benchmark( b ) { b.tic(); for ( i = 0; i < b.iterations; i++ ) { - idx = floor( randu()*100.0 ) - 50.0; + idx = (i%100) - 50; out = ind( idx, 10, 'wrap' ); if ( out !== out ) { b.fail( 'should not return NaN' ); @@ -79,7 +77,7 @@ bench( pkg+':mode=throw', function benchmark( b ) { b.tic(); for ( i = 0; i < b.iterations; i++ ) { - idx = floor( randu()*11.0 ); + idx = i % 11; out = ind( idx, 10, 'throw' ); if ( out !== out ) { b.fail( 'should not return NaN' ); @@ -100,7 +98,7 @@ bench( pkg+':mode=normalize', function benchmark( b ) { b.tic(); for ( i = 0; i < b.iterations; i++ ) { - idx = floor( randu()*20.0 ) - 10.0; + idx = (i%21) - 10; out = ind( idx, 10, 'normalize' ); if ( out !== out ) { b.fail( 'should not return NaN' ); diff --git a/base/ind/docs/repl.txt b/base/ind/docs/repl.txt index 56cb3426..1038bb24 100644 --- a/base/ind/docs/repl.txt +++ b/base/ind/docs/repl.txt @@ -44,6 +44,41 @@ > idx = {{alias}}( -4, 10, 'normalize' ) 7 + +{{alias}}.factory( mode ) + Returns a function for returning an index according to a provided index + mode. + + The function returns a function which accepts the following arguments: + + - idx: index + - max: maximum index value + + Parameters + ---------- + mode: string + Specifies how to handle an index outside the interval [0, max]. If equal + to 'throw', the function throws an error. If equal to 'normalize', the + function throws an error if provided an out-of-bounds normalized index. + If equal to 'wrap', the function wraps around an index using modulo + arithmetic. If equal to 'clamp', the function sets an index to either 0 + (minimum index) or the maximum index. + + Returns + ------- + fcn: Function + Function for returning an index. + + Examples + -------- + > var f = {{alias}}.factory( 'clamp' ); + > var idx = f( 2, 10 ) + 2 + > idx = f( -4, 10 ) + 0 + > idx = f( 13, 10 ) + 10 + See Also -------- diff --git a/base/ind/docs/types/index.d.ts b/base/ind/docs/types/index.d.ts index 77cba59f..535f2af8 100644 --- a/base/ind/docs/types/index.d.ts +++ b/base/ind/docs/types/index.d.ts @@ -22,6 +22,125 @@ import { Mode } from '@stdlib/types/ndarray'; +/** +* Resolves an index. +* +* @param idx - input index +* @param max - maximum index +* @returns index +*/ +type IndexFcn = ( idx: number, max: number ) => number; + +/** +* Interface describing the main export. +*/ +interface Routine { + /** + * Returns an index given an index mode. + * + * @param idx - index + * @param max - maximum index + * @param mode - specifies how to handle an index outside the interval `[0,max]` + * @returns index + * + * @example + * var idx = ind( 2, 9, 'clamp' ); + * // returns 2 + * + * idx = ind( 10, 9, 'clamp' ); + * // returns 9 + * + * idx = ind( -1, 9, 'clamp' ); + * // returns 0 + * + * @example + * var idx = ind( 2, 9, 'wrap' ); + * // returns 2 + * + * idx = ind( 10, 9, 'wrap' ); + * // returns 0 + * + * idx = ind( -1, 9, 'wrap' ); + * // returns 9 + * + * @example + * var idx = ind( 2, 9, 'throw' ); + * // returns 2 + * + * idx = ind( 10, 9, 'throw' ); + * // throws + * + * idx = ind( -1, 9, 'throw' ); + * // throws + * + * @example + * var idx = ind( 2, 9, 'normalize' ); + * // returns 2 + * + * idx = ind( -5, 9, 'normalize' ); + * // returns 5 + * + * idx = ind( -20, 9, 'normalize' ); + * // throws + */ + ( idx: number, max: number, mode: Mode ): number; + + /** + * Returns a function for returning an index according to a provided index mode. + * + * @param {string} mode - specifies how to handle an out-of-bounds index + * @returns {Function} function for returning an index + * + * @example + * var ind = ind.factory( 'clamp' ); + * + * var idx = ind( 2, 9 ); + * // returns 2 + * + * idx = ind( 10, 9 ); + * // returns 9 + * + * idx = ind( -1, 9 ); + * // returns 0 + * + * @example + * var ind = ind.factory( 'wrap' ); + * + * var idx = ind( 2, 9 ); + * // returns 2 + * + * idx = ind( 10, 9 ); + * // returns 0 + * + * idx = ind( -1, 9 ); + * // returns 9 + * + * @example + * var ind = ind.factory( 'throw' ); + * + * var idx = ind( 2, 9 ); + * // returns 2 + * + * idx = ind( 10, 9 ); + * // throws + * + * idx = ind( -1, 9 ); + * // throws + * + * @example + * var ind = ind.factory( 'normalize' ); + * + * var idx = ind( 1, 10 ); + * // returns 1 + * + * idx = ind( -4, 10 ); + * // returns 7 + * + * idx = ind( -100, 10 ); + * // throws + */ + factory( mode: Mode ): IndexFcn; +} /** * Returns an index given an index mode. @@ -29,7 +148,6 @@ import { Mode } from '@stdlib/types/ndarray'; * @param idx - index * @param max - maximum index * @param mode - specifies how to handle an index outside the interval `[0,max]` -* @throws index out-of-bounds * @returns index * * @example @@ -71,8 +189,20 @@ import { Mode } from '@stdlib/types/ndarray'; * * idx = ind( -20, 9, 'normalize' ); * // throws +* +* @example +* var fcn = ind.factory( 'clamp' ); +* +* var idx = fcn( 2, 9 ); +* // returns 2 +* +* idx = fcn( 10, 9 ); +* // returns 9 +* +* idx = fcn( -1, 9 ); +* // returns 0 */ -declare function ind( idx: number, max: number, mode: Mode ): number; +declare var ind: Routine; // EXPORTS // diff --git a/base/ind/docs/types/test.ts b/base/ind/docs/types/test.ts index 3c3b726f..b7f7046b 100644 --- a/base/ind/docs/types/test.ts +++ b/base/ind/docs/types/test.ts @@ -65,9 +65,71 @@ import ind = require( './index' ); ind( 2, 9, ( x: number ): number => x ); // $ExpectError } -// The compiler throws an error if the function is provided insufficient arguments... +// The compiler throws an error if the function is provided an unsupported number of arguments... { ind(); // $ExpectError ind( 2 ); // $ExpectError ind( 2, 9 ); // $ExpectError + ind( 2, 9, 'clamp', {} ); // $ExpectError +} + +// Attached to the main export is a `factory` method which returns a function... +{ + ind.factory( 'clamp' ); // $ExpectType IndexFcn +} + +// The compiler throws an error if the `factory` method is provided an argument which is not a known index mode... +{ + ind.factory( 123 ); // $ExpectError + ind.factory( 'abc' ); // $ExpectError + ind.factory( true ); // $ExpectError + ind.factory( false ); // $ExpectError + ind.factory( null ); // $ExpectError + ind.factory( undefined ); // $ExpectError + ind.factory( [ '1', '2' ] ); // $ExpectError + ind.factory( {} ); // $ExpectError + ind.factory( ( x: number ): number => x ); // $ExpectError +} + +// The compiler throws an error if the `factory` method is provided an unsupported number of arguments... +{ + ind.factory(); // $ExpectError + ind.factory( 'clamp', {} ); // $ExpectError +} + +// The compiler throws an error if the function returned by the `factory` method is provided a first argument which is not a number... +{ + const fcn = ind.factory( 'clamp' ); + + fcn( 'abc', 9 ); // $ExpectError + fcn( true, 9 ); // $ExpectError + fcn( false, 9 ); // $ExpectError + fcn( null, 9 ); // $ExpectError + fcn( undefined, 9 ); // $ExpectError + fcn( [ '1', '2' ], 9 ); // $ExpectError + fcn( {}, 9 ); // $ExpectError + fcn( ( x: number ): number => x, 9 ); // $ExpectError +} + +// The compiler throws an error if the function returned by the `factory` method is provided a second argument which is not a number... +{ + const fcn = ind.factory( 'clamp' ); + + fcn( 2, 'abc' ); // $ExpectError + fcn( 2, true ); // $ExpectError + fcn( 2, false ); // $ExpectError + fcn( 2, null ); // $ExpectError + fcn( 2, undefined ); // $ExpectError + fcn( 2, [ '1', '2' ] ); // $ExpectError + fcn( 2, {} ); // $ExpectError + fcn( 2, ( x: number ): number => x ); // $ExpectError +} + +// The compiler throws an error if the function returned by the `factory` method is provided an unsupported number of arguments... +{ + const fcn = ind.factory( 'clamp' ); + + fcn(); // $ExpectError + fcn( 2 ); // $ExpectError + fcn( 2, 9, {} ); // $ExpectError } diff --git a/base/ind/lib/factory.js b/base/ind/lib/factory.js new file mode 100644 index 00000000..68653af7 --- /dev/null +++ b/base/ind/lib/factory.js @@ -0,0 +1,163 @@ +/** +* @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 clampIndex = require( './../../../base/clamp-index' ); +var wrapIndex = require( './../../../base/wrap-index' ); +var normalize = require( './../../../base/normalize-index' ); +var isIndexMode = require( './../../../base/assert/is-index-mode' ); +var format = require( '@stdlib/string/format' ); + + +// VARIABLES // + +var TABLE = { + 'wrap': wrapIndex, + 'clamp': clampIndex, + 'normalize': normalizeIndex, + 'throw': throwIfOutOfBounds +}; + + +// FUNCTIONS // + +/** +* Returns an index if within bounds and throw an error otherwise. +* +* @private +* @param {integer} idx - index +* @param {NonNegativeInteger} max - maximum index +* @throws {RangeError} index out-of-bounds +* @returns {integer} index +* +* @example +* var idx = throwIfOutOfBounds( 2, 9 ); +* // returns 2 +* +* idx = throwIfOutOfBounds( 10, 9 ); +* // throws +* +* idx = throwIfOutOfBounds( -1, 9 ); +* // throws +*/ +function throwIfOutOfBounds( idx, max ) { + if ( idx < 0 || idx > max ) { + throw new RangeError( format( 'invalid argument. Index must resolve to a value on the interval: [0, %d]. Value: `%d`.', max, idx ) ); + } + return idx; +} + +/** +* Normalizes an index before performing a strict bounds check. +* +* @private +* @param {integer} idx - index +* @param {NonNegativeInteger} max - maximum index +* @throws {RangeError} index out-of-bounds +* @returns {integer} index +* +* @example +* var idx = normalizeIndex( 1, 10 ); +* // returns 1 +* +* idx = normalizeIndex( -4, 10 ); +* // returns 7 +* +* idx = normalizeIndex( -100, 10 ); +* // throws +*/ +function normalizeIndex( idx, max ) { + var index = normalize( idx, max ); + if ( index < 0 || index > max ) { + throw new RangeError( format( 'invalid argument. Index must resolve to a value on the interval: [0, %d]. Value: `%d`.', max, idx ) ); + } + return index; +} + + +// MAIN // + +/** +* Returns a function for returning an index according to a provided index mode. +* +* @param {string} mode - specifies how to handle an out-of-bounds index +* @throws {TypeError} first argument must be a recognized index mode +* @returns {Function} function for returning an index +* +* @example +* var ind = factory( 'clamp' ); +* +* var idx = ind( 2, 9 ); +* // returns 2 +* +* idx = ind( 10, 9 ); +* // returns 9 +* +* idx = ind( -1, 9 ); +* // returns 0 +* +* @example +* var ind = factory( 'wrap' ); +* +* var idx = ind( 2, 9 ); +* // returns 2 +* +* idx = ind( 10, 9 ); +* // returns 0 +* +* idx = ind( -1, 9 ); +* // returns 9 +* +* @example +* var ind = factory( 'throw' ); +* +* var idx = ind( 2, 9 ); +* // returns 2 +* +* idx = ind( 10, 9 ); +* // throws +* +* idx = ind( -1, 9 ); +* // throws +* +* @example +* var ind = factory( 'normalize' ); +* +* var idx = ind( 1, 10 ); +* // returns 1 +* +* idx = ind( -4, 10 ); +* // returns 7 +* +* idx = ind( -100, 10 ); +* // throws +*/ +function factory( mode ) { + if ( !isIndexMode( mode ) ) { + throw new TypeError( format( 'invalid argument. First argument must be a recognized index mode. Value: `%s`.', mode ) ); + } + return TABLE[ mode ]; +} + + +// EXPORTS // + +module.exports = factory; diff --git a/base/ind/lib/index.js b/base/ind/lib/index.js index 709ab2bd..7b56b5f3 100644 --- a/base/ind/lib/index.js +++ b/base/ind/lib/index.js @@ -70,13 +70,34 @@ * * idx = ind( -100, 10, 'normalize' ); * // throws +* +* @example +* var ind = require( '@stdlib/ndarray/base/ind' ); +* +* var fcn = ind.factory( 'clamp' ); +* +* var idx = fcn( -1, 10 ); +* // returns 0 +* +* idx = fcn( 14, 10 ); +* // returns 10 +* +* idx = fcn( 6, 10 ); +* // returns 6 */ // MODULES // +var setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' ); +var factory = require( './factory.js' ); var main = require( './main.js' ); +// MAIN // + +setReadOnly( main, 'factory', factory ); + + // EXPORTS // module.exports = main; diff --git a/base/ind/test/test.factory.js b/base/ind/test/test.factory.js new file mode 100644 index 00000000..dc0f3561 --- /dev/null +++ b/base/ind/test/test.factory.js @@ -0,0 +1,186 @@ +/** +* @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 factory = require( './../lib' ).factory; + + +// TESTS // + +tape( 'main export is a function', function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof factory, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'the function throws an error if not provided a recognized index mode', function test( t ) { + var values; + var i; + + values = [ + 'beep', + 'boop', + 'foo', + 'bar', + 5, + 3.14, + NaN, + true, + false, + null, + void 0, + [], + {}, + function noop() {} + ]; + for ( i = 0; i < values.length; i++ ) { + t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); + } + t.end(); + + function badValue( value ) { + return function badValue() { + factory( value ); + }; + } +}); + +tape( 'when the `mode` is equal to "clamp", the returned function clamps an index to the interval [0,max]', function test( t ) { + var ind = factory( 'clamp' ); + t.strictEqual( ind( 2, 10 ), 2, 'returns expected value' ); + t.strictEqual( ind( -5, 10 ), 0, 'returns expected value' ); + t.strictEqual( ind( 15, 10 ), 10, 'returns expected value' ); + t.end(); +}); + +tape( 'when the `mode` is equal to "wrap", the returned function wraps an index on the interval [0,max]', function test( t ) { + var expected; + var values; + var ind; + var i; + + ind = factory( 'wrap' ); + + values = [ -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 ]; // eslint-disable-line max-len + expected = [ 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5 ]; // eslint-disable-line max-len + + for ( i = 0; i < values.length; i++ ) { + t.strictEqual( ind( values[ i ], 9 ), expected[ i ], 'returns expected value. idx: '+values[ i ]+'. expected: '+expected[ i ]+'.' ); + } + t.end(); +}); + +tape( 'when the `mode` is equal to "wrap", the returned function wraps an index on the interval [0,max]', function test( t ) { + var ind = factory( 'wrap' ); + t.strictEqual( ind( 2, 10 ), 2, 'returns expected value' ); + t.strictEqual( ind( 12, 10 ), 1, 'returns expected value' ); + t.strictEqual( ind( -2, 10 ), 9, 'returns expected value' ); + t.strictEqual( ind( 21, 10 ), 10, 'returns expected value' ); + t.strictEqual( ind( 22, 10 ), 0, 'returns expected value' ); + t.strictEqual( ind( 26, 10 ), 4, 'returns expected value' ); + t.strictEqual( ind( -21, 10 ), 1, 'returns expected value' ); + t.strictEqual( ind( -22, 10 ), 0, 'returns expected value' ); + t.strictEqual( ind( -26, 10 ), 7, 'returns expected value' ); + t.end(); +}); + +tape( 'when the `mode` is equal to `throw`, the returned function returns the index when on the interval [0,max]', function test( t ) { + var ind; + var max; + var i; + + ind = factory( 'throw' ); + + max = 10; + for ( i = 0; i < max+1; i++ ) { + t.strictEqual( ind( i, max ), i, 'returns expected value' ); + } + t.end(); +}); + +tape( 'when the `mode` is equal to `throw`, the returned function throws an error when a provided index is outside the interval [0,max]', function test( t ) { + var ind; + var max; + var i; + + ind = factory( 'throw' ); + + max = 10; + for ( i = -100; i < 0; i++ ) { + t.throws( badValue( i ), RangeError, 'throws an range error when provided '+i ); + } + for ( i = max+1; i < 100; i++ ) { + t.throws( badValue( i ), RangeError, 'throws an range error when provided '+i ); + } + t.end(); + + function badValue( value ) { + return function badValue() { + ind( value, max ); + }; + } +}); + +tape( 'when the `mode` is equal to `normalize`, the returned function resolves a nonnegative index when on the interval [-max-1,max]', function test( t ) { + var expected; + var ind; + var max; + var idx; + var i; + + ind = factory( 'normalize' ); + + max = 10; + for ( i = -max-1; i < max+1; i++ ) { + idx = ind( i, max ); + if ( i < 0 ) { + expected = i + max + 1; + } else { + expected = i; + } + t.strictEqual( idx, expected, 'returns expected value' ); + } + t.end(); +}); + +tape( 'when the `mode` is equal to `normalize`, the returned function throws an error when a provided index is outside the interval [-max-1,max]', function test( t ) { + var ind; + var max; + var i; + + ind = factory( 'normalize' ); + + max = 10; + for ( i = -100; i < -max-1; i++ ) { + t.throws( badValue( i ), RangeError, 'throws an range error when provided '+i ); + } + for ( i = max+1; i < 100; i++ ) { + t.throws( badValue( i ), RangeError, 'throws an range error when provided '+i ); + } + t.end(); + + function badValue( value ) { + return function badValue() { + ind( value, max ); + }; + } +}); diff --git a/base/ind/test/test.js b/base/ind/test/test.js index da585941..2ea0e7e2 100644 --- a/base/ind/test/test.js +++ b/base/ind/test/test.js @@ -1,7 +1,7 @@ /** * @license Apache-2.0 * -* Copyright (c) 2018 The Stdlib Authors. +* 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. @@ -21,6 +21,7 @@ // MODULES // var tape = require( 'tape' ); +var hasOwnProp = require( '@stdlib/assert/has-own-property' ); var ind = require( './../lib' ); @@ -32,106 +33,8 @@ tape( 'main export is a function', function test( t ) { t.end(); }); -tape( 'when the `mode` is equal to "clamp", the function clamps an index to the interval [0,max]', function test( t ) { - t.strictEqual( ind( 2, 10, 'clamp' ), 2, 'returns expected value' ); - t.strictEqual( ind( -5, 10, 'clamp' ), 0, 'returns expected value' ); - t.strictEqual( ind( 15, 10, 'clamp' ), 10, 'returns expected value' ); +tape( 'attached to the main export is a `factory` method', function test( t ) { + t.strictEqual( hasOwnProp( ind, 'factory' ), true, 'has property' ); + t.strictEqual( typeof ind.factory, 'function', 'has method' ); t.end(); }); - -tape( 'when the `mode` is equal to "wrap", the function wraps an index on the interval [0,max]', function test( t ) { - var expected; - var values; - var i; - - values = [ -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 ]; // eslint-disable-line max-len - expected = [ 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5 ]; // eslint-disable-line max-len - - for ( i = 0; i < values.length; i++ ) { - t.strictEqual( ind( values[ i ], 9, 'wrap' ), expected[ i ], 'returns expected value. idx: '+values[ i ]+'. expected: '+expected[ i ]+'.' ); - } - t.end(); -}); - -tape( 'when the `mode` is equal to "wrap", the function wraps an index on the interval [0,max]', function test( t ) { - t.strictEqual( ind( 2, 10, 'wrap' ), 2, 'returns expected value' ); - t.strictEqual( ind( 12, 10, 'wrap' ), 1, 'returns expected value' ); - t.strictEqual( ind( -2, 10, 'wrap' ), 9, 'returns expected value' ); - t.strictEqual( ind( 21, 10, 'wrap' ), 10, 'returns expected value' ); - t.strictEqual( ind( 22, 10, 'wrap' ), 0, 'returns expected value' ); - t.strictEqual( ind( 26, 10, 'wrap' ), 4, 'returns expected value' ); - t.strictEqual( ind( -21, 10, 'wrap' ), 1, 'returns expected value' ); - t.strictEqual( ind( -22, 10, 'wrap' ), 0, 'returns expected value' ); - t.strictEqual( ind( -26, 10, 'wrap' ), 7, 'returns expected value' ); - t.end(); -}); - -tape( 'when the `mode` is equal to `throw`, the function returns the index when on the interval [0,max]', function test( t ) { - var max; - var i; - - max = 10; - for ( i = 0; i < max+1; i++ ) { - t.strictEqual( ind( i, max, 'throw' ), i, 'returns expected value' ); - } - t.end(); -}); - -tape( 'when the `mode` is equal to `throw`, the function throws an error when a provided index is outside the interval [0,max]', function test( t ) { - var max; - var i; - - max = 10; - for ( i = -100; i < 0; i++ ) { - t.throws( badValue( i ), RangeError, 'throws an range error when provided '+i ); - } - for ( i = max+1; i < 100; i++ ) { - t.throws( badValue( i ), RangeError, 'throws an range error when provided '+i ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - ind( value, max, 'throw' ); - }; - } -}); - -tape( 'when the `mode` is equal to `normalize`, the function resolves a nonnegative index when on the interval [-max-1,max]', function test( t ) { - var expected; - var max; - var idx; - var i; - - max = 10; - for ( i = -max-1; i < max+1; i++ ) { - idx = ind( i, max, 'normalize' ); - if ( i < 0 ) { - expected = i + max + 1; - } else { - expected = i; - } - t.strictEqual( idx, expected, 'returns expected value' ); - } - t.end(); -}); - -tape( 'when the `mode` is equal to `normalize`, the function throws an error when a provided index is outside the interval [-max-1,max]', function test( t ) { - var max; - var i; - - max = 10; - for ( i = -100; i < -max-1; i++ ) { - t.throws( badValue( i ), RangeError, 'throws an range error when provided '+i ); - } - for ( i = max+1; i < 100; i++ ) { - t.throws( badValue( i ), RangeError, 'throws an range error when provided '+i ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - ind( value, max, 'normalize' ); - }; - } -}); diff --git a/base/ind/test/test.main.js b/base/ind/test/test.main.js new file mode 100644 index 00000000..da585941 --- /dev/null +++ b/base/ind/test/test.main.js @@ -0,0 +1,137 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2018 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 ind = require( './../lib' ); + + +// TESTS // + +tape( 'main export is a function', function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof ind, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'when the `mode` is equal to "clamp", the function clamps an index to the interval [0,max]', function test( t ) { + t.strictEqual( ind( 2, 10, 'clamp' ), 2, 'returns expected value' ); + t.strictEqual( ind( -5, 10, 'clamp' ), 0, 'returns expected value' ); + t.strictEqual( ind( 15, 10, 'clamp' ), 10, 'returns expected value' ); + t.end(); +}); + +tape( 'when the `mode` is equal to "wrap", the function wraps an index on the interval [0,max]', function test( t ) { + var expected; + var values; + var i; + + values = [ -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 ]; // eslint-disable-line max-len + expected = [ 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5 ]; // eslint-disable-line max-len + + for ( i = 0; i < values.length; i++ ) { + t.strictEqual( ind( values[ i ], 9, 'wrap' ), expected[ i ], 'returns expected value. idx: '+values[ i ]+'. expected: '+expected[ i ]+'.' ); + } + t.end(); +}); + +tape( 'when the `mode` is equal to "wrap", the function wraps an index on the interval [0,max]', function test( t ) { + t.strictEqual( ind( 2, 10, 'wrap' ), 2, 'returns expected value' ); + t.strictEqual( ind( 12, 10, 'wrap' ), 1, 'returns expected value' ); + t.strictEqual( ind( -2, 10, 'wrap' ), 9, 'returns expected value' ); + t.strictEqual( ind( 21, 10, 'wrap' ), 10, 'returns expected value' ); + t.strictEqual( ind( 22, 10, 'wrap' ), 0, 'returns expected value' ); + t.strictEqual( ind( 26, 10, 'wrap' ), 4, 'returns expected value' ); + t.strictEqual( ind( -21, 10, 'wrap' ), 1, 'returns expected value' ); + t.strictEqual( ind( -22, 10, 'wrap' ), 0, 'returns expected value' ); + t.strictEqual( ind( -26, 10, 'wrap' ), 7, 'returns expected value' ); + t.end(); +}); + +tape( 'when the `mode` is equal to `throw`, the function returns the index when on the interval [0,max]', function test( t ) { + var max; + var i; + + max = 10; + for ( i = 0; i < max+1; i++ ) { + t.strictEqual( ind( i, max, 'throw' ), i, 'returns expected value' ); + } + t.end(); +}); + +tape( 'when the `mode` is equal to `throw`, the function throws an error when a provided index is outside the interval [0,max]', function test( t ) { + var max; + var i; + + max = 10; + for ( i = -100; i < 0; i++ ) { + t.throws( badValue( i ), RangeError, 'throws an range error when provided '+i ); + } + for ( i = max+1; i < 100; i++ ) { + t.throws( badValue( i ), RangeError, 'throws an range error when provided '+i ); + } + t.end(); + + function badValue( value ) { + return function badValue() { + ind( value, max, 'throw' ); + }; + } +}); + +tape( 'when the `mode` is equal to `normalize`, the function resolves a nonnegative index when on the interval [-max-1,max]', function test( t ) { + var expected; + var max; + var idx; + var i; + + max = 10; + for ( i = -max-1; i < max+1; i++ ) { + idx = ind( i, max, 'normalize' ); + if ( i < 0 ) { + expected = i + max + 1; + } else { + expected = i; + } + t.strictEqual( idx, expected, 'returns expected value' ); + } + t.end(); +}); + +tape( 'when the `mode` is equal to `normalize`, the function throws an error when a provided index is outside the interval [-max-1,max]', function test( t ) { + var max; + var i; + + max = 10; + for ( i = -100; i < -max-1; i++ ) { + t.throws( badValue( i ), RangeError, 'throws an range error when provided '+i ); + } + for ( i = max+1; i < 100; i++ ) { + t.throws( badValue( i ), RangeError, 'throws an range error when provided '+i ); + } + t.end(); + + function badValue( value ) { + return function badValue() { + ind( value, max, 'normalize' ); + }; + } +}); diff --git a/dist/index.js b/dist/index.js index c7072f48..f74e8a7f 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1,4 +1,4 @@ -"use strict";var P=function(r,a){return function(){return a||r((a={exports:{}}).exports,a),a.exports}};var Zt=P(function(xZ,Jt){"use strict";function u6(r){var a,e,i,v;for(a=r.length,e=[],v=0;v=0;v--)e[v]=i,i*=r[v];return e}function f6(r){var a,e,i;for(a=[],e=1,i=0;i=0;v--)a[v]=i,i*=r[v];return a}function c6(r,a){var e,i;for(e=1,i=0;iv&&(i=!1),i||a)v=t;else return 0;return i&&a?3:i?1:2}iv.exports=g6});var Ne=P(function(wZ,vv){"use strict";var h6=tv();vv.exports=h6});var ov=P(function(jZ,sv){"use strict";function b6(r){var a,e,i;if(a=r.length,a===0)return 0;for(e=1,i=0;i0?t+=o*(r[s]-1):o<0&&(v+=o*(r[s]-1))}return[v,t]}Rv.exports=K6});var Cv=P(function(MZ,zv){"use strict";function G6(r,a,e,i){var v,t,o,s,u;for(v=r.length,t=e,o=e,u=0;u0?o+=s*(r[u]-1):s<0&&(t+=s*(r[u]-1))}return i[0]=t,i[1]=o,i}zv.exports=G6});var qe=P(function(BZ,Lv){"use strict";var J6=require("@stdlib/utils/define-nonenumerable-read-only-property"),Pv=Dv(),Z6=Cv();J6(Pv,"assign",Z6);Lv.exports=Pv});var Mv=P(function(FZ,Vv){"use strict";var X6=qe();function W6(r,a,e,i){var v=X6(a,e,i);return v[0]>=0&&v[1]=0;o--)t=r%e[o],r-=t,r/=e[o],v+=t*a[o];return this._accessors?this._buffer.get(v):this._buffer[v]}is.exports=u5});var ss=P(function(rX,vs){"use strict";function f5(r,a){var e,i,v,t,o,s;if(v=this._ndims,v===0)return this._accessors?this._buffer.set(r,this._offset):this._buffer[this._offset]=r,this;if(this._flags.ROW_MAJOR_CONTIGUOUS||this._flags.COLUMN_MAJOR_CONTIGUOUS){if(this._iterationOrder===1)return this._accessors?this._buffer.set(a,this._offset+r):this._buffer[this._offset+r]=a,this;if(this._iterationOrder===-1)return this._accessors?this._buffer.set(a,this._offset-r):this._buffer[this._offset-r]=a,this}if(i=this._shape,e=this._strides,t=this._offset,this._order==="column-major"){for(s=0;s=0;s--)o=r%i[s],r-=o,r/=i[s],t+=o*e[s];return this._accessors?this._buffer.set(a,t):this._buffer[t]=a,this}vs.exports=f5});var ns=P(function(eX,os){"use strict";function d5(){var r,a;for(r=this._offset,a=0;a=0;o--)t=this.iget(this._length-1-o),r+=gi(t)+", "+hi(t),o>0&&(r+=", ");else for(o=2;o>=0;o--)r+=this.iget(this._length-1-o),o>0&&(r+=", ")}if(e=x5[this.dtype],i+=m5(e,"{{data}}",r),i+=", ",a===0?i+="[]":i+="[ "+this._shape.join(", ")+" ]",i+=", ",i+="[ ",a===0)i+="0";else for(o=0;oa?a:r}Cs.exports=lS});var wi=P(function(xX,Ls){"use strict";var cS=Ps();Ls.exports=cS});var Ms=P(function(qX,Vs){"use strict";function yS(r,a){var e=a+1;return r<0?(r+=e,r<0&&(r%=e,r!==0&&(r+=e)),r):(r>a&&(r-=e,r>a&&(r%=e)),r)}Vs.exports=yS});var ji=P(function(gX,Bs){"use strict";var pS=Ms();Bs.exports=pS});var Us=P(function(hX,Fs){"use strict";function mS(r,a){return r<0?(r+=a+1,r<0?-1:r):r>a?-1:r}Fs.exports=mS});var Ve=P(function(bX,Ys){"use strict";var xS=Us();Ys.exports=xS});var Gs=P(function(SX,Ks){"use strict";var qS=wi(),gS=ji(),hS=Ve(),bS=require("@stdlib/string/format");function SS(r,a,e){var i;if(e==="clamp")return qS(r,a);if(e==="wrap")return gS(r,a);if(i=r,e==="normalize"&&(i=hS(i,a)),i<0||i>a)throw new RangeError(bS("invalid argument. Index must resolve to a value on the interval: [0, %d]. Value: `%d`.",a,r));return i}Ks.exports=SS});var Me=P(function(wX,Js){"use strict";var wS=Gs();Js.exports=wS});var Ws=P(function(jX,Xs){"use strict";var jS=require("@stdlib/assert/is-integer").isPrimitive,ES=Me(),_S=ie(),OS=require("@stdlib/string/format"),Zs=_S.prototype.iget;function TS(r){if(this._ndims>0){if(!jS(r))throw new TypeError(OS("invalid argument. Index must be an integer. Value: `%s`.",r));return r=ES(r,this._length-1,this._mode),Zs.call(this,r)}return Zs.call(this)}Xs.exports=TS});var $s=P(function(EX,Hs){"use strict";var IS=require("@stdlib/assert/is-integer").isPrimitive,kS=Me(),AS=ie(),NS=require("@stdlib/string/format"),Qs=AS.prototype.iset;function RS(r,a){if(this._flags.READONLY)throw new Error("invalid invocation. Cannot write to a read-only array.");if(this._ndims>0){if(!IS(r))throw new TypeError(NS("invalid argument. Index must be an integer. Value: `%s`.",r));r=kS(r,this._length-1,this._mode),Qs.call(this,r,a)}else Qs.call(this,r);return this}Hs.exports=RS});var ao=P(function(_X,eo){"use strict";var DS=require("@stdlib/assert/is-integer").isPrimitive,zS=Me(),ro=require("@stdlib/string/format");function CS(){var r,a,e,i;if(arguments.length!==this._ndims)throw new RangeError(ro("invalid arguments. Number of indices must match the number of dimensions. ndims: `%u`. nargs: `%u`.",this._ndims,arguments.length));for(r=this._offset,e=this._submode.length,i=0;i0))throw new TypeError(le("invalid argument. Third argument must be an array-like object containing nonnegative integers. Value: `%s`.",e));if(s=e.length,s>qo)throw new RangeError(le("invalid argument. Number of dimensions must not exceed %u due to stack limits. Value: `%u`.",qo,s));if(!QS(i))throw new TypeError(le("invalid argument. Fourth argument must be an array-like object containing integers. Value: `%s`.",i));if(s>0){if(i.length!==s)throw new RangeError(le("invalid argument. Fourth argument length must match the number of dimensions. Expected number of dimensions: `%u`. Strides length: `%u`.",s,i.length))}else{if(i.length!==1)throw new RangeError("invalid argument. Fourth argument length must be equal to 1 when creating a zero-dimensional ndarray.");if(i[0]!==0)throw new RangeError(le("invalid argument. Fourth argument must contain a single element equal to 0. Value: `%d`.",i[0]))}if(!WS(v))throw new TypeError(le("invalid argument. Fifth argument must be a nonnegative integer. Value: `%s`.",v));if(!HS(t))throw new TypeError(le("invalid argument. Sixth argument must be a supported order. Value: `%s`.",t));if(s>0&&!rw(a.length,e,i,v)&&ew(e)>0)throw new Error("invalid arguments. Input buffer is incompatible with the specified meta data. Ensure that the offset is valid with regard to the strides array and that the buffer has enough elements to satisfy the desired array shape.");if(u={},u.mode=uw,u.readonly=fw,arguments.length>6&&(f=nw(u,o),f))throw f;return this._mode=u.mode,u.submode===void 0&&(u.submode=[this._mode]),this._submode=u.submode,n=xo(e,s),d=xo(i,s||1),go.call(this,r,a,n,d,v,t),this._flags.READONLY=u.readonly,this}iw(ce,go);ia(ce,"name","ndarray");ia(ce.prototype,"get",sw);ia(ce.prototype,"iget",tw);ia(ce.prototype,"set",ow);ia(ce.prototype,"iset",vw);ho.exports=ce});var ye=P(function(RX,So){"use strict";var dw=bo();So.exports=dw});var wo=P(function(DX,lw){lw.exports=["none","equiv","safe","mostly-safe","same-kind","unsafe"]});var Eo=P(function(zX,jo){"use strict";var cw=wo();function yw(){return cw.slice()}jo.exports=yw});var Oo=P(function(CX,_o){"use strict";function pw(){return{none:0,equiv:1,safe:2,"mostly-safe":3,"same-kind":4,unsafe:5}}_o.exports=pw});var _i=P(function(PX,Io){"use strict";var mw=require("@stdlib/utils/define-nonenumerable-read-only-property"),To=Eo(),xw=Oo();mw(To,"enum",xw);Io.exports=To});var No=P(function(LX,Ao){"use strict";var qw=_i(),ko=qw(),gw=ko.length;function hw(r){var a;for(a=0;a0}Zo.exports=Yw});var _a=P(function(WX,Wo){"use strict";var Kw=Xo();Wo.exports=Kw});var Qo=P(function(QX,Gw){Gw.exports={float64:{float64:1,float32:1,int32:0,int16:0,int8:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,binary:0,generic:1},float32:{float64:1,float32:1,int32:0,int16:0,int8:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,binary:0,generic:1},int32:{float64:1,float32:0,int32:1,int16:0,int8:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:0,binary:0,generic:1},int16:{float64:1,float32:1,int32:1,int16:1,int8:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,binary:0,generic:1},int8:{float64:1,float32:1,int32:1,int16:1,int8:1,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,binary:0,generic:1},uint32:{float64:1,float32:0,int32:0,int16:0,int8:0,uint32:1,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:0,binary:0,generic:1},uint16:{float64:1,float32:1,int32:1,int16:0,int8:0,uint32:1,uint16:1,uint8:0,uint8c:0,complex128:1,complex64:1,binary:0,generic:1},uint8:{float64:1,float32:1,int32:1,int16:1,int8:0,uint32:1,uint16:1,uint8:1,uint8c:1,complex128:1,complex64:1,binary:0,generic:1},uint8c:{float64:1,float32:1,int32:1,int16:1,int8:0,uint32:1,uint16:1,uint8:1,uint8c:1,complex128:1,complex64:1,binary:0,generic:1},complex128:{float64:0,float32:0,int32:0,int16:0,int8:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,binary:0,generic:1},complex64:{float64:0,float32:0,int32:0,int16:0,int8:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,binary:0,generic:1},generic:{float64:0,float32:0,int32:0,int16:0,int8:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:0,complex64:0,binary:0,generic:1},binary:{float64:0,float32:0,int32:0,int16:0,int8:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:0,complex64:0,binary:1,generic:0}}});var rn=P(function(HX,$o){"use strict";var Ho=require("@stdlib/utils/keys"),Jw=require("@stdlib/assert/has-own-property"),Zw=te(),Ta=Qo(),Oa;function Xw(){var r,a,e,i,v,t,o,s,u;for(e={},r=Ho(Ta),a=r.length,u=0;u0}an.exports=e8});var Ia=P(function(eW,vn){"use strict";var a8=tn();vn.exports=a8});var sn=P(function(aW,i8){i8.exports={float64:{float64:1,float32:1,int32:0,int16:0,int8:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:0,binary:0,generic:1},float32:{float64:1,float32:1,int32:0,int16:0,int8:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,binary:0,generic:1},int32:{float64:1,float32:0,int32:1,int16:1,int8:1,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:0,binary:0,generic:1},int16:{float64:1,float32:1,int32:1,int16:1,int8:1,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,binary:0,generic:1},int8:{float64:1,float32:1,int32:1,int16:1,int8:1,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,binary:0,generic:1},uint32:{float64:1,float32:0,int32:0,int16:0,int8:0,uint32:1,uint16:1,uint8:1,uint8c:1,complex128:1,complex64:0,binary:0,generic:1},uint16:{float64:1,float32:1,int32:1,int16:0,int8:0,uint32:1,uint16:1,uint8:1,uint8c:1,complex128:1,complex64:1,binary:0,generic:1},uint8:{float64:1,float32:1,int32:1,int16:1,int8:0,uint32:1,uint16:1,uint8:1,uint8c:1,complex128:1,complex64:1,binary:0,generic:1},uint8c:{float64:1,float32:1,int32:1,int16:1,int8:0,uint32:1,uint16:1,uint8:1,uint8c:1,complex128:1,complex64:1,binary:0,generic:1},complex128:{float64:0,float32:0,int32:0,int16:0,int8:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,binary:0,generic:0},complex64:{float64:0,float32:0,int32:0,int16:0,int8:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,binary:0,generic:0},generic:{float64:0,float32:0,int32:0,int16:0,int8:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:0,complex64:0,binary:0,generic:1},binary:{float64:0,float32:0,int32:0,int16:0,int8:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:0,complex64:0,binary:1,generic:0}}});var un=P(function(iW,nn){"use strict";var on=require("@stdlib/utils/keys"),t8=require("@stdlib/assert/has-own-property"),v8=te(),Aa=sn(),ka;function s8(){var r,a,e,i,v,t,o,s,u;for(e={},r=on(Aa),a=r.length,u=0;u0}dn.exports=l8});var Ai=P(function(sW,cn){"use strict";var c8=ln();cn.exports=c8});var pn=P(function(oW,yn){"use strict";var y8=_a(),p8=Ia(),m8=Ai();function x8(r,a,e){return e==="unsafe"||r===a?!0:e==="none"||e==="equiv"?!1:e==="safe"?y8(r,a):e==="mostly-safe"?p8(r,a):m8(r,a)}yn.exports=x8});var Ni=P(function(nW,mn){"use strict";var q8=pn();mn.exports=q8});var qn=P(function(uW,xn){"use strict";var g8=require("@stdlib/buffer/ctor"),h8=require("@stdlib/array/float64"),b8=require("@stdlib/array/float32"),S8=require("@stdlib/array/int16"),w8=require("@stdlib/array/int32"),j8=require("@stdlib/array/int8"),E8=require("@stdlib/array/uint16"),_8=require("@stdlib/array/uint32"),O8=require("@stdlib/array/uint8"),T8=require("@stdlib/array/uint8c"),I8=require("@stdlib/array/complex64"),k8=require("@stdlib/array/complex128"),A8={binary:g8,float64:h8,float32:b8,generic:Array,int16:S8,int32:w8,int8:j8,uint16:E8,uint32:_8,uint8:O8,uint8c:T8,complex64:I8,complex128:k8};xn.exports=A8});var hn=P(function(fW,gn){"use strict";var N8=qn();function R8(r){return N8[r]||null}gn.exports=R8});var va=P(function(dW,bn){"use strict";var D8=hn();bn.exports=D8});var wn=P(function(lW,Sn){"use strict";function z8(r){var a;for(a=0;a=0&&r.length=V7(a)}Nu.exports=M7});var zu=P(function(UW,Du){"use strict";var B7=Ru();Du.exports=B7});var Lu=P(function(YW,Pu){"use strict";var Cu=require("@stdlib/math/base/special/abs");function F7(r){var a,e,i,v;if(a=r.length,a===0)return!1;for(e=Cu(r[0]),v=1;ve)return!1;e=i}return!0}hf.exports=IE});var Bi=P(function(cQ,Sf){"use strict";var kE=bf();Sf.exports=kE});var jf=P(function(yQ,wf){"use strict";var AE=sa(),NE=de(),RE=Bi();function DE(r,a,e){return NE(a)!==0&&RE(a)&&AE(r,a,e)}wf.exports=DE});var _f=P(function(pQ,Ef){"use strict";var zE=jf();Ef.exports=zE});var Tf=P(function(mQ,Of){"use strict";var CE=require("@stdlib/array/base/assert/contains").factory,PE=Kr(),LE=CE(PE("signed_integer"));Of.exports=LE});var La=P(function(xQ,If){"use strict";var VE=Tf();If.exports=VE});var Af=P(function(qQ,kf){"use strict";var ME=require("@stdlib/array/base/assert/contains").factory,BE=Kr(),FE=ME(BE("unsigned_integer"));kf.exports=FE});var Va=P(function(gQ,Nf){"use strict";var UE=Af();Nf.exports=UE});var Df=P(function(hQ,Rf){"use strict";var Lr=require("@stdlib/utils/define-read-only-property"),Pr={};Lr(Pr,"isAllowedDataTypeCast",Ni());Lr(Pr,"isBufferLengthCompatible",qi());Lr(Pr,"isBufferLengthCompatibleShape",zu());Lr(Pr,"isCastingMode",Oi());Lr(Pr,"isColumnMajor",Pi());Lr(Pr,"isColumnMajorContiguous",Gu());Lr(Pr,"isComplexFloatingPointDataType",oa());Lr(Pr,"isContiguous",$u());Lr(Pr,"isDataType",Le());Lr(Pr,"isFloatingPointDataType",Ca());Lr(Pr,"isIndexMode",aa());Lr(Pr,"isIntegerDataType",Li());Lr(Pr,"isMostlySafeDataTypeCast",Ia());Lr(Pr,"isNumericDataType",Vi());Lr(Pr,"isOrder",ee());Lr(Pr,"isReadOnly",re());Lr(Pr,"isRealDataType",Pa());Lr(Pr,"isRealFloatingPointDataType",Mi());Lr(Pr,"isRowMajor",Bi());Lr(Pr,"isRowMajorContiguous",_f());Lr(Pr,"isSafeDataTypeCast",_a());Lr(Pr,"isSameKindDataTypeCast",Ai());Lr(Pr,"isSignedIntegerDataType",La());Lr(Pr,"isSingleSegmentCompatible",sa());Lr(Pr,"isUnsignedIntegerDataType",Va());Rf.exports=Pr});var Cf=P(function(bQ,zf){"use strict";function YE(r){return r.dtype}zf.exports=YE});var Xr=P(function(SQ,Pf){"use strict";var KE=Cf();Pf.exports=KE});var Vf=P(function(wQ,Lf){"use strict";var GE=require("@stdlib/array/base/copy-indexed");function JE(r,a){var e=r.shape;return a?GE(e):e}Lf.exports=JE});var Jr=P(function(jQ,Mf){"use strict";var ZE=Vf();Mf.exports=ZE});var Ff=P(function(EQ,Bf){"use strict";var XE=Gr(),WE=require("@stdlib/array/base/copy-indexed"),QE="row-major";function HE(r,a){var e,i,v;return v=r.strides,typeof v!="object"||v===null?(i=r.shape,i.length===0?[0]:(e=r.order,typeof e!="string"&&(e=QE),XE(i,e))):a?WE(v):v}Bf.exports=HE});var ne=P(function(_Q,Uf){"use strict";var $E=Ff();Uf.exports=$E});var Kf=P(function(OQ,Yf){"use strict";var r_=Zr();function e_(r){var a,e,i;return i=r.offset,typeof i=="number"?i:(e=r.shape,e.length===0||(a=r.strides,typeof a!="object"||a===null)?0:r_(e,a))}Yf.exports=e_});var pe=P(function(TQ,Gf){"use strict";var a_=Kf();Gf.exports=a_});var Zf=P(function(IQ,Jf){"use strict";var i_=Ne(),Fi="row-major",t_="column-major";function v_(r){var a,e;return e=r.order,typeof e=="string"?e:(a=r.strides,typeof a!="object"||a===null||(e=i_(a),e===1||e===3)?Fi:e===2?t_:r.shape.length===0?Fi:null)}Jf.exports=v_});var Wr=P(function(kQ,Xf){"use strict";var s_=Zf();Xf.exports=s_});var Qf=P(function(AQ,Wf){"use strict";function o_(r){return r.data}Wf.exports=o_});var he=P(function(NQ,Hf){"use strict";var n_=Qf();Hf.exports=n_});var rd=P(function(RQ,$f){"use strict";var u_=require("@stdlib/array/base/assert/is-accessor-array"),f_=require("@stdlib/array/base/accessor-getter"),d_=require("@stdlib/array/base/accessor-setter"),l_=require("@stdlib/array/base/getter"),c_=require("@stdlib/array/base/setter"),y_=zr(),p_=Xr(),m_=Jr(),x_=ne(),q_=pe(),g_=Wr(),h_=he();function b_(r){var a,e,i,v;return a=h_(r),i=m_(r,!0),v=p_(r),e=u_(a),{ref:r,dtype:v,data:a,length:y_(i),shape:i,strides:x_(r,!0),offset:q_(r),order:g_(r),accessorProtocol:e,accessors:e?[f_(v),d_(v)]:[l_(v),c_(v)]}}$f.exports=b_});var Ye=P(function(DQ,ed){"use strict";var S_=rd();ed.exports=S_});var id=P(function(zQ,ad){"use strict";function w_(r,a){var e,i,v,t,o,s,u,f,n,d;for(v=1,t=1,d=1;d=0&&(n=r[o],i=n<0?-n:n,!(i<=e));)r[o+1]=n,a[s+1]=a[s],o-=1,s-=1;r[o+1]=u,a[s+1]=f,v+=1,t+=1}}ad.exports=w_});var sd=P(function(CQ,vd){"use strict";var j_=require("@stdlib/array/base/zero-to"),E_=require("@stdlib/array/base/copy-indexed"),td=require("@stdlib/array/base/take-indexed"),__=id();function O_(r,a,e){var i;return i=j_(r.length),a=E_(a),__(a,i),r=td(r,i),e=td(e,i),{sh:r,sx:a,sy:e}}vd.exports=O_});var Ir=P(function(PQ,od){"use strict";var T_=sd();od.exports=T_});var ud=P(function(LQ,nd){"use strict";var I_={BLOCK_SIZE_IN_BYTES:64,BLOCK_SIZE_IN_ELEMENTS:8};nd.exports=I_});var ld=P(function(VQ,dd){"use strict";var fd=je(),Ui=ud();function k_(r,a){var e,i;return e=fd(r),i=fd(a),e===null||i===null?Ui.BLOCK_SIZE_IN_ELEMENTS:e>i?Ui.BLOCK_SIZE_IN_BYTES/e|0:Ui.BLOCK_SIZE_IN_BYTES/i|0}dd.exports=k_});var kr=P(function(MQ,cd){"use strict";var A_=ld();cd.exports=A_});var pd=P(function(BQ,yd){"use strict";var N_=Ir(),R_=kr();function D_(r,a){var e,i,v,t,o,s,u,f,n,d,x,b,p,l,h,m,E,T,q,w,j,c,g,y,S;for(S=N_(r.shape,r.strides,a.strides),b=S.sh,h=S.sx,m=S.sy,e=R_(r.dtype,a.dtype),E=r.offset,T=a.offset,i=r.data,v=a.data,s=h[0],f=m[0],t=r.accessors[0],o=a.accessors[1],y=b[1];y>0;)for(y0;)for(g0;)for(I0;)for(R0;)for(N0;)for(M0;)for(V0;)for(L0;)for(C0;)for(J0;)for(Y0;)for(G0;)for(K0;)for(U0;)for(er0;)for(H0;)for($0;)for(X0;)for(Q0;)for(W0;)for(or0;)for(sr0;)for(vr0;)for(ar0;)for(tr0;)for(rr0;)for(ir0;)for(yr0;)for(lr0;)for(cr0;)for(fr0;)for(dr0;)for(ur0;)for(nr0;)for(or0;)for(br0;)for(mr0;)for(gr0;)for(qr0;)for(hr0;)for(xr0;)for(pr0;)for(yr0;)for(lr0;)for(Dr0;)for(Ar0;)for(Tr0;)for(Or0;)for(_r0;)for(Er0;)for(wr0;)for(br0;)for(mr0;)for(gr0;)for(c0;)for(j0;)for(N0;)for(O0;)for(A0;)for(L0;)for(C0;)for(k0;)for(z0;)for(G0;)for(K0;)for(U0;)for(F0;)for(B0;)for($0;)for(X0;)for(Q0;)for(W0;)for(Z0;)for(J0;)for(vr0;)for(ar0;)for(tr0;)for(rr0;)for(ir0;)for(er0;)for(H0;)for(cr0;)for(fr0;)for(dr0;)for(ur0;)for(nr0;)for(or0;)for(sr0;)for(vr0;)for(gr0;)for(qr0;)for(hr0;)for(xr0;)for(pr0;)for(yr0;)for(lr0;)for(cr0;)for(fr0;)for(Tr0;)for(Or0;)for(_r0;)for(Er0;)for(wr0;)for(br0;)for(mr0;)for(gr0;)for(qr0;)for(hr=s&&(v=s-1);else if(t==="wrap")v<0?(v+=s,v<0&&(v%=s,v!==0&&(v+=s))):v>=s&&(v-=s,v>=s&&(v%=s));else if(t==="normalize"&&v<0&&(v+=s),v<0||v>=s)throw new RangeError(UO("invalid argument. Linear index must not exceed array dimensions. Number of array elements: `%u`. Value: `%d`.",s,v));if(u=e,i==="column-major"){for(n=0;n=0;n--)f=v%r[n],v-=f,v/=r[n],u+=f*a[n];return u}q0.exports=YO});var me=P(function(xH,h0){"use strict";var KO=g0();h0.exports=KO});var j0=P(function(qH,w0){"use strict";var GO=zr(),b0=me(),S0="throw";function JO(r,a){var e,i,v,t,o,s,u,f,n,d,x,b,p,l,h;for(f=r.shape,o=GO(f),e=r.data,i=a.data,n=r.strides,d=a.strides,x=r.offset,b=a.offset,v=r.order,t=a.order,s=r.accessors[0],u=a.accessors[1],h=0;h=0&&(n=r[o],i=n<0?-n:n,!(i<=e));)r[o+1]=n,a[s+1]=a[s],o-=1,s-=1;r[o+1]=u,a[s+1]=f,v+=1,t+=1}}tl.exports=iI});var nl=P(function(DH,ol){"use strict";var tI=require("@stdlib/array/base/zero-to"),vI=require("@stdlib/array/base/copy-indexed"),Ma=require("@stdlib/array/base/take-indexed"),sI=require("@stdlib/array/base/filled"),Ki=Ne(),oI=vl(),sl=3;function nI(r,a,e,i){var v,t,o,s,u,f,n,d,x,b;if(v=tI(r.length),f=Ki(a),n=Ki(e),d=Ki(i),t=sI([],4),t[f].push(a),t[n].push(e),t[d].push(i),o=t[0].length,o===sl)u=a;else if(o===sl-1){for(x=1;x<4;x++)if(t[x].length){u=t[x][0];break}}else{for(b=0,x=1;x<4;x++)s=t[x].length,s>=o&&(o=s,b=x);u=t[b][0]}return u=vI(u),oI(u,v),r=Ma(r,v),a=a===u?u:Ma(a,v),e=e===u?u:Ma(e,v),i=i===u?u:Ma(i,v),{sh:r,sx:a,sy:e,sz:i}}ol.exports=nI});var fl=P(function(zH,ul){"use strict";var uI=nl();ul.exports=uI});var ll=P(function(CH,dl){"use strict";var fI={BLOCK_SIZE_IN_BYTES:64,BLOCK_SIZE_IN_ELEMENTS:8};dl.exports=fI});var yl=P(function(PH,cl){"use strict";var Gi=je(),Ba=ll();function dI(r,a,e){var i,v,t;return i=Gi(r),v=Gi(a),t=Gi(e),i===null||v===null||t===null?Ba.BLOCK_SIZE_IN_ELEMENTS:i>v&&i>t?Ba.BLOCK_SIZE_IN_BYTES/i|0:v>t?Ba.BLOCK_SIZE_IN_BYTES/v|0:Ba.BLOCK_SIZE_IN_BYTES/t|0}cl.exports=dI});var ml=P(function(LH,pl){"use strict";var lI=yl();pl.exports=lI});var gl=P(function(VH,ql){"use strict";var cI=require("@stdlib/string/format"),Fa=require("@stdlib/math/base/special/trunc"),xl=require("@stdlib/math/base/special/abs");function yI(r,a,e,i,v,t){var o,s,u,f,n,d;for(o=r.length,s=1,d=0;d=s&&(v=s-1);else if(t==="wrap")v<0?(v+=s,v<0&&(v%=s,v!==0&&(v+=s))):v>=s&&(v-=s,v>=s&&(v%=s));else if(t==="normalize"&&v<0&&(v+=s),v<0||v>=s)throw new RangeError(cI("invalid argument. Linear index must not exceed array dimensions. Number of array elements: `%u`. Value: `%d`.",s,v));if(u=0,i==="column-major"){for(d=o-1;d>=0;d--)n=a[d],n<0?(f=Fa(v/n),v-=f*n,f+=r[d]-1):(f=Fa(v/n),v-=f*n),u+=f*xl(n);return u}for(d=0;d=0;f--)if(n=s-o+f,!(n<0)){if(u=v[n],i=a[f],i!==0&&if&&(f=a[n]);for(n=0;n=0;){for(t=a[0]-f+n,t>=0?i=v[t]:i=1,d=1;d=0?s=r[d][o]:s=1,i===1){i=s;continue}if(!(s===1||i===s))return null}e[n]=i,n-=1}return e}kl.exports=DI});var Rl=P(function(GH,Nl){"use strict";var zI=Al();Nl.exports=zI});var zl=P(function(JH,Dl){"use strict";var CI=ta(),PI=Na();function LI(r){var a=PI(r);return a?CI(a):null}Dl.exports=LI});var Pl=P(function(ZH,Cl){"use strict";var VI=zl();Cl.exports=VI});var Vl=P(function(XH,Ll){"use strict";function MI(){return{binary:"r",bool:"x",complex64:"c",complex128:"z",float16:"h",bfloat16:"e",float32:"f",float64:"d",float128:"g",generic:"o",int8:"s",int16:"k",int32:"i",int64:"l",int128:"m",int256:"n",uint8:"b",uint8c:"a",uint16:"t",uint32:"u",uint64:"v",uint128:"w",uint256:"y"}}Ll.exports=MI});var Fl=P(function(WH,Bl){"use strict";var BI=te(),Ml=Vl(),Ji;function FI(r){return arguments.length===0?Ml():(Ji===void 0&&(Ji=Ml()),Ji[BI(r)]||null)}Bl.exports=FI});var Zi=P(function(QH,Ul){"use strict";var UI=Fl();Ul.exports=UI});var Jl=P(function(HH,Gl){"use strict";var Yl=require("@stdlib/utils/object-inverse"),Kl=Zi(),Xi;function YI(r){return arguments.length===0?Yl(Kl()):(Xi===void 0&&(Xi=Yl(Kl())),Xi[r]||null)}Gl.exports=YI});var Xl=P(function($H,Zl){"use strict";var KI=Jl();Zl.exports=KI});var Ql=P(function(r$,Wl){"use strict";function GI(){return{binary:"byte",bool:"boolean",complex64:"single-precision floating-point complex number",complex128:"double-precision floating-point complex number",float16:"half-precision floating-point number",bfloat16:"brain floating-point number",float32:"single-precision floating-point number",float64:"double-precision floating-point number",float128:"quadruple-precision floating-point number",generic:"generic array value",int8:"signed 8-bit integer",int16:"signed 16-bit integer",int32:"signed 32-bit integer",int64:"signed 64-bit integer",int128:"signed 128-bit integer",int256:"signed 256-bit integer",uint8:"unsigned 8-bit integer",uint8c:"unsigned 8-bit integer (clamped)",uint16:"unsigned 16-bit integer",uint32:"unsigned 32-bit integer",uint64:"unsigned 64-bit integer",uint128:"unsigned 128-bit integer",uint256:"unsigned 256-bit integer"}}Wl.exports=GI});var rc=P(function(e$,$l){"use strict";var JI=te(),Hl=Ql(),Wi;function ZI(r){return arguments.length===0?Hl():(Wi===void 0&&(Wi=Hl()),Wi[JI(r)]||null)}$l.exports=ZI});var ac=P(function(a$,ec){"use strict";var XI=rc();ec.exports=XI});var tc=P(function(i$,ic){"use strict";var WI=wa(),QI=ta();function HI(r){var a=typeof r;return a==="number"?WI(r)?r:null:a==="string"?QI(r):null}ic.exports=HI});var Qi=P(function(t$,vc){"use strict";var $I=tc();vc.exports=$I});var sc=P(function(v$,rk){rk.exports={binary:null,bool:"bool",complex64:"stdlib_complex64_t",complex128:"stdlib_complex128_t",float16:null,bfloat16:null,float32:"float",float64:"double",float128:null,generic:null,int8:"int8_t",int16:"int16_t",int32:"int32_t",int64:"int64_t",int128:null,int256:null,uint8:"uint8_t",uint8c:null,uint16:"uint16_t",uint32:"uint32_t",uint64:"uint64_t",uint128:null,uint256:null}});var nc=P(function(s$,oc){"use strict";var ek=te(),ak=sc();function ik(r){return ak[ek(r)]||null}oc.exports=ik});var fc=P(function(o$,uc){"use strict";var tk=nc();uc.exports=tk});var cc=P(function(n$,lc){"use strict";var vk=require("@stdlib/assert/is-array-like-object"),dc=require("@stdlib/assert/is-nonnegative-integer").isPrimitive,sk=te(),Hi=require("@stdlib/string/format");function ok(r,a,e){var i,v,t,o,s,u,f,n;if(!vk(r))throw new TypeError(Hi("invalid argument. First argument must be an array-like object. Value: `%s`.",r));if(!dc(a))throw new TypeError(Hi("invalid argument. Second argument must be a nonnegative integer. Value: `%s`.",a));if(!dc(e))throw new TypeError(Hi("invalid argument. Third argument must be a nonnegative integer. Value: `%s`.",e));if(i=r.length,i===0)throw new RangeError("invalid argument. First argument must contain at least one element.");if(s=a+e,i%s!==0)throw new RangeError("invalid arguments. Length of the first argument is incompatible with the second and third arguments.");for(v=[],t=[],u=2*s,n=2*a,f=0;f<=u;f++)f===0?f===n?t.push("() => ("):t.push("("):f===u?f===n?t.push(") => ()"):t.push(")"):f===n?t.push(") => ("):f%2===1?t.push(""):t.push(", ");for(f=0;f0?(t=lk(a),o=uk(a,e)):(t=1,o=[0]),r==="binary"?v=yk(t):v=ck(t,r),new dk(r,v,a,o,fk(a,o),e)}pc.exports=pk});var qc=P(function(d$,xc){"use strict";var mk=mc();xc.exports=mk});var hc=P(function(l$,gc){"use strict";var xk=Gr(),qk=Zr(),gk=zr(),hk=Xr(),bk=Jr(),Sk=Wr(),wk=require("@stdlib/array/empty"),jk=require("@stdlib/buffer/alloc-unsafe");function Ek(r){var a,e,i,v,t,o,s;return s=hk(r),t=bk(r,!0),v=Sk(r),a=t.length,a>0?(e=gk(t),o=xk(t,v)):(e=1,o=[0]),s==="binary"?i=jk(e):i=wk(e,s),new r.constructor(s,i,t,o,qk(t,o),v)}gc.exports=Ek});var Sc=P(function(c$,bc){"use strict";var _k=hc();bc.exports=_k});var Tc=P(function(y$,Oc){"use strict";var Ok=re(),wc=Xr(),Tk=Jr(),Ik=ne(),jc=pe(),kk=Wr(),Ec=he(),_c=require("@stdlib/string/format");function Ak(r,a){var e,i,v,t,o,s,u;if(t=Tk(r,!1),o=Ik(r,!1),v=kk(r),s=t.length,e=[],i=[],a<0){if(a<-s-1)throw new RangeError(_c("invalid argument. Specified axis is out-of-bounds. Must be on the interval: [-%u-1, %u]. Value: `%d`.",s,s,a));a+=s+1}else if(a>s)throw new RangeError(_c("invalid argument. Specified axis is out-of-bounds. Must be on the interval: [-%u-1, %u]. Value: `%d`.",s,s,a));if(a===0)for(i.push(1),e.push(o[0]),u=0;u0&&(x=Vk(x.length))}else x=Lc(b);return Vc(x)===0?Jk(d,o,rt(x,f),u,!i):(t=Kk(b,v,t),x=rt(x,f),x.length===0?new d(o,et(r),[],[0],t,u,{readonly:!i}):(v=Gk(b,v,f),new d(o,et(r),x,v,t,u,{readonly:!i})))}Bc.exports=Zk});var Mr=P(function(h$,Uc){"use strict";var Xk=Fc();Uc.exports=Xk});var Kc=P(function(b$,Yc){"use strict";function Wk(r){var a=r.ndims;return typeof a=="number"?a:r.shape.length}Yc.exports=Wk});var be=P(function(S$,Gc){"use strict";var Qk=Kc();Gc.exports=Qk});var Zc=P(function(w$,Jc){"use strict";var Hk=require("@stdlib/slice/base/args2multislice"),$k=require("@stdlib/slice/ctor"),rA=Mr(),eA=require("@stdlib/array/base/filled"),aA=be(),at=require("@stdlib/string/format");function iA(r,a,e){var i,v,t;if(v=aA(r),v===0)throw new TypeError(at("invalid argument. First argument must be an ndarray having one or more dimensions. Number of dimensions: %d.",v));if(t=a,t<0){if(t+=v,t<0)throw new RangeError(at("invalid argument. Dimension index exceeds the number of dimensions. Number of dimensions: %d. Value: `%d`.",v,a))}else if(t>=v)throw new RangeError(at("invalid argument. Dimension index exceeds the number of dimensions. Number of dimensions: %d. Value: `%d`.",v,a));return i=eA(null,v),i[t]=new $k(null,null,-1),rA(r,Hk(i),!0,e)}Jc.exports=iA});var Ya=P(function(j$,Xc){"use strict";var tA=Zc();Xc.exports=tA});var Qc=P(function(E$,Wc){"use strict";var vA=require("@stdlib/slice/multi"),sA=Ya(),oA=Mr(),nA=be();function uA(r,a){return nA(r)===0?oA(r,new vA,!0,a):sA(r,-1,a)}Wc.exports=uA});var $c=P(function(_$,Hc){"use strict";var fA=Qc();Hc.exports=fA});var i1=P(function(O$,a1){"use strict";var r1=require("@stdlib/slice/multi"),dA=Ya(),e1=Mr(),lA=be();function cA(r,a){var e=lA(r);return e===0?e1(r,new r1,!0,a):e===1?e1(r,new r1(null),!0,a):dA(r,-2,a)}a1.exports=cA});var v1=P(function(T$,t1){"use strict";var yA=i1();t1.exports=yA});var o1=P(function(I$,s1){"use strict";var pA=require("@stdlib/array/base/assert/is-accessor-array"),mA=require("@stdlib/array/base/accessor-setter"),xA=require("@stdlib/array/base/setter"),qA=ve(),gA=ie(),hA=require("@stdlib/string/format");function bA(r,a,e){var i,v;if(i=qA(a,1),i===null)throw new TypeError(hA("invalid argument. Second argument must be a recognized data type. Value: `%s`.",a));return/^complex/.test(a)&&typeof r=="number"&&(r=[r,0]),pA(i)?v=mA(a):v=xA(a),v(i,0,r),new gA(a,i,[],[0],0,e)}s1.exports=bA});var u1=P(function(k$,n1){"use strict";var SA=o1();n1.exports=SA});var it=P(function(A$,f1){"use strict";var wA=require("@stdlib/string/format"),Ka=require("@stdlib/math/base/special/trunc");function jA(r,a,e,i,v,t,o){var s,u,f,n,d;for(s=r.length,u=1,d=0;d=u&&(v=u-1);else if(t==="wrap")v<0?(v+=u,v<0&&(v%=u,v!==0&&(v+=u))):v>=u&&(v-=u,v>=u&&(v%=u));else if(t==="normalize"&&v<0&&(v+=u),v<0||v>=u)throw new RangeError(wA("invalid argument. Linear index must not exceed array dimensions. Number of array elements: `%u`. Value: `%d`.",u,v));if(e===0){if(i==="column-major"){for(d=0;d=0;d--)n=v%r[d],v-=n,v/=r[d],o[d]=n;return o}if(i==="column-major"){for(d=s-1;d>=0;d--)n=a[d],n<0?(f=Ka(v/n),v-=f*n,o[d]=r[d]-1+f):(f=Ka(v/n),v-=f*n,o[d]=f);return o}for(d=0;d0&&(v+=a[t]*(r[t]-1))}return v}p1.exports=kA});var q1=P(function(z$,x1){"use strict";var AA=m1();x1.exports=AA});var b1=P(function(C$,h1){"use strict";var g1=Ua(),NA=Jr();function RA(r,a){var e,i,v;if(i=a.length,e=NA(r,!1),e.length===i){for(v=0;vi;t--)v[t]=e[t];for(t=i;t>=0&&(o=(e[t]+1)%a[t],v[t]=o,!(o>0));t--);for(t-=1;t>=0;t--)v[t]=e[t];return v}function UA(r,a,e,i,v){var t,o;for(t=0;t0));t++);for(t+=1;t=t)return null;return a===BA?FA(t,r,e,i,v):UA(t,r,e,i,v)}N1.exports=YA});var D1=P(function(U$,R1){"use strict";var KA=require("@stdlib/array/base/zeros"),GA=vt();function JA(r,a,e,i){return GA(r,a,e,i,KA(r.length))}R1.exports=JA});var ue=P(function(Y$,C1){"use strict";var ZA=require("@stdlib/utils/define-nonenumerable-read-only-property"),z1=D1(),XA=vt();ZA(z1,"assign",XA);C1.exports=z1});var L1=P(function(K$,P1){"use strict";function WA(r){var a,e;for(a=0,e=0;e=0&&(n=r[o],i=n<0?-n:n,!(i<=e));)r[o+1]=n,a[s+1]=a[s],o-=1,s-=1;r[o+1]=u,a[s+1]=f,v+=1,t+=1}}B1.exports=HA});var Y1=P(function(Z$,U1){"use strict";var $A=require("@stdlib/array/base/zero-to"),rN=require("@stdlib/array/base/copy-indexed"),eN=require("@stdlib/array/base/take-indexed"),aN=F1();function iN(r,a){var e;return e=$A(r.length),a=rN(a),aN(a,e),r=eN(r,e),{sh:r,sx:a}}U1.exports=iN});var Br=P(function(X$,K1){"use strict";var tN=Y1();K1.exports=tN});var J1=P(function(W$,G1){"use strict";var vN={BLOCK_SIZE_IN_BYTES:64,BLOCK_SIZE_IN_ELEMENTS:8};G1.exports=vN});var W1=P(function(Q$,X1){"use strict";var sN=je(),Z1=J1();function oN(r){var a=sN(r);return a===null?Z1.BLOCK_SIZE_IN_ELEMENTS:Z1.BLOCK_SIZE_IN_BYTES/a|0}X1.exports=oN});var Fr=P(function(H$,Q1){"use strict";var nN=W1();Q1.exports=nN});var $1=P(function($$,H1){"use strict";var uN=Br(),fN=Fr();function dN(r,a){var e,i,v,t,o,s,u,f,n,d,x,b,p,l,h,m,E;for(E=uN(r.shape,r.strides),u=E.sh,d=E.sx,e=fN(r.dtype),x=r.offset,i=r.data,t=d[0],v=r.accessors[1],m=u[1];m>0;)for(m0;)for(h0;)for(j0;)for(w0;)for(q0;)for(_0;)for(S0;)for(y0;)for(g0;)for(I0;)for(R0;)for(N0;)for(O0;)for(A0;)for(L0;)for(C0;)for(k0;)for(z0;)for(D0;)for(I0;)for(U0;)for(F0;)for(B0;)for(M0;)for(V0;)for(L0;)for(C0;)for(Z0;)for(J0;)for(Y0;)for(G0;)for(K0;)for(U0;)for(F0;)for(B0;)for(H0;)for($0;)for(X0;)for(Q0;)for(W0;)for(Z0;)for(J0;)for(Y0;)for(G0;)for(ar0;)for(tr0;)for(rr0;)for(ir0;)for(er0;)for(H0;)for($0;)for(X0;)for(Q0;)for(W0;)for(h0;)for(l0;)for(w0;)for(q0;)for(T0;)for(S0;)for(y0;)for(g0;)for(c0;)for(R0;)for(N0;)for(O0;)for(A0;)for(_0;)for(C0;)for(k0;)for(z0;)for(D0;)for(I0;)for(R0;)for(F0;)for(B0;)for(M0;)for(V0;)for(L0;)for(C0;)for(k0;)for(J0;)for(Y0;)for(G0;)for(K0;)for(U0;)for(F0;)for(B0;)for(M0;)for($0;)for(X0;)for(Q0;)for(W0;)for(Z0;)for(J0;)for(Y0;)for(G0;)for(K0;)for(tr0;)for(rr0;)for(ir0;)for(er0;)for(H0;)for($0;)for(X0;)for(Q0;)for(W0;)for(Z=u&&(n=u-1);else if(o==="wrap")n<0?(n+=u,n<0&&(n%=u,n!==0&&(n+=u))):n>=u&&(n-=u,n>=u&&(n%=u));else if(o==="normalize"&&n<0&&(n+=u),n<0||n>=u)throw new RangeError(G9("invalid argument. Subscripts must not exceed array dimensions. Subscript: `%u`. Value: `%d`.",d,n));f=r[d],f<0&&a===0?s-=n*f:s+=n*f}return s}tm.exports=J9});var lt=P(function(_er,sm){"use strict";var Z9=vm();sm.exports=Z9});var um=P(function(Oer,nm){"use strict";function om(r,a,e,i,v,t){var o,s,u,f,n;if(t>=a.length)return r.accessors[0](r.data,i);for(u=[],f=a[t],o=e[t],n=0;n0;)for(S0;)for(y0;)for(D0;)for(I0;)for(R0;)for(B0;)for(M0;)for(V0;)for(L0;)for(Z0;)for(J0;)for(Y0;)for(G0;)for(K0;)for(ir0;)for(er0;)for(H0;)for($0;)for(X0;)for(Q0;)for(nr0;)for(or0;)for(sr0;)for(vr0;)for(ar0;)for(tr0;)for(rr0;)for(pr0;)for(yr0;)for(lr0;)for(cr0;)for(fr0;)for(dr0;)for(ur0;)for(nr0;)for(wr0;)for(br0;)for(mr0;)for(gr0;)for(qr0;)for(hr0;)for(xr0;)for(pr0;)for(yr0;)for(Cr0;)for(Dr0;)for(Ar0;)for(Tr0;)for(Or0;)for(_r0;)for(Er0;)for(wr0;)for(br0;)for(mr0;)for(g0;)for(c0;)for(R0;)for(N0;)for(O0;)for(V0;)for(L0;)for(C0;)for(k0;)for(Y0;)for(G0;)for(K0;)for(U0;)for(F0;)for(H0;)for($0;)for(X0;)for(Q0;)for(W0;)for(Z0;)for(sr0;)for(vr0;)for(ar0;)for(tr0;)for(rr0;)for(ir0;)for(er0;)for(lr0;)for(cr0;)for(fr0;)for(dr0;)for(ur0;)for(nr0;)for(or0;)for(sr0;)for(mr0;)for(gr0;)for(qr0;)for(hr0;)for(xr0;)for(pr0;)for(yr0;)for(lr0;)for(cr0;)for(Ar0;)for(Tr0;)for(Or0;)for(_r0;)for(Er0;)for(wr0;)for(br0;)for(mr0;)for(gr0;)for(qr0;)for(A0;)for(_0;)for(k0;)for(z0;)for(D0;)for(U0;)for(F0;)for(B0;)for(M0;)for(Q0;)for(W0;)for(Z0;)for(J0;)for(Y0;)for(tr0;)for(rr0;)for(ir0;)for(er0;)for(H0;)for($0;)for(dr0;)for(ur0;)for(nr0;)for(or0;)for(sr0;)for(vr0;)for(ar0;)for(hr0;)for(xr0;)for(pr0;)for(yr0;)for(lr0;)for(cr0;)for(fr0;)for(dr0;)for(_r0;)for(Er0;)for(wr0;)for(br0;)for(mr0;)for(gr0;)for(qr0;)for(hr0;)for(xr0;)for(Qr0;)for(Ur0;)for(Cr0;)for(Dr0;)for(Ar0;)for(Tr0;)for(Or0;)for(_r0;)for(Er0;)for(wr0;)for(S0;)for(y0;)for(D0;)for(I0;)for(R0;)for(B0;)for(M0;)for(V0;)for(L0;)for(Z0;)for(J0;)for(Y0;)for(G0;)for(K0;)for(ir0;)for(er0;)for(H0;)for($0;)for(X0;)for(Q0;)for(nr0;)for(or0;)for(sr0;)for(vr0;)for(ar0;)for(tr0;)for(rr0;)for(pr0;)for(yr0;)for(lr0;)for(cr0;)for(fr0;)for(dr0;)for(ur0;)for(nr0;)for(wr0;)for(br0;)for(mr0;)for(gr0;)for(qr0;)for(hr0;)for(xr0;)for(pr0;)for(yr0;)for(Cr0;)for(Dr0;)for(Ar0;)for(Tr0;)for(Or0;)for(_r0;)for(Er0;)for(wr0;)for(br0;)for(mr0?(t=nB(a),o=iB(a,e)):(t=1,o=[0]),v=vB(r,t),v===null)throw new TypeError(sB("invalid argument. First argument must be a recognized data type. Value: `%s`.",r));return new oB(r,v,a,o,tB(a,o),e)}Qq.exports=uB});var rg=P(function(mir,$q){"use strict";var fB=Hq();$q.exports=fB});var ag=P(function(xir,eg){"use strict";var dB=Gr(),lB=Zr(),cB=ve(),yB=zr(),pB=Xr(),mB=Jr(),xB=Wr(),qB=require("@stdlib/string/format");function gB(r){var a,e,i,v,t,o,s;if(s=pB(r),t=mB(r,!0),v=xB(r),a=t.length,a>0?(e=yB(t),o=dB(t,v)):(e=1,o=[0]),i=cB(s,e),i===null)throw new TypeError(qB("invalid argument. First argument must have a recognized data type. Value: `%s`.",s));return new r.constructor(s,i,t,o,lB(t,o),v)}eg.exports=gB});var tg=P(function(qir,ig){"use strict";var hB=ag();ig.exports=hB});var sg=P(function(gir,vg){"use strict";var jr=require("@stdlib/utils/define-read-only-property"),Sr={};jr(Sr,"assert",Df());jr(Sr,"assign",Yi());jr(Sr,"binaryLoopOrder",fl());jr(Sr,"binaryBlockSize",ml());jr(Sr,"bind2vind",bl());jr(Sr,"broadcastArray",Ua());jr(Sr,"broadcastScalar",Il());jr(Sr,"broadcastShapes",Rl());jr(Sr,"buffer",ve());jr(Sr,"bufferCtors",va());jr(Sr,"bufferDataType",Na());jr(Sr,"bufferDataTypeEnum",Pl());jr(Sr,"bytesPerElement",je());jr(Sr,"char2dtype",Xl());jr(Sr,"clampIndex",wi());jr(Sr,"ndarray",ie());jr(Sr,"data",he());jr(Sr,"dtype",Xr());jr(Sr,"dtypeChar",Zi());jr(Sr,"dtypeDesc",ac());jr(Sr,"dtypeEnum2Str",wa());jr(Sr,"dtypeResolveEnum",Qi());jr(Sr,"dtypeResolveStr",te());jr(Sr,"dtypeStr2Enum",ta());jr(Sr,"dtype2c",fc());jr(Sr,"dtypes2signatures",$i());jr(Sr,"empty",qc());jr(Sr,"emptyLike",Sc());jr(Sr,"expandDimensions",kc());jr(Sr,"fliplr",$c());jr(Sr,"flipud",v1());jr(Sr,"scalar2ndarray",u1());jr(Sr,"ind",Me());jr(Sr,"ind2sub",Ga());jr(Sr,"iterationOrder",de());jr(Sr,"maxViewBufferIndex",q1());jr(Sr,"maybeBroadcastArray",w1());jr(Sr,"metaDataProps",O1());jr(Sr,"minViewBufferIndex",A1());jr(Sr,"minmaxViewBufferIndex",qe());jr(Sr,"ndarraylike2object",Ye());jr(Sr,"ndims",be());jr(Sr,"nextCartesianIndex",ue());jr(Sr,"nonsingletonDimensions",M1());jr(Sr,"normalizeIndex",Ve());jr(Sr,"nullary",N2());jr(Sr,"nullaryLoopOrder",Br());jr(Sr,"nullaryBlockSize",Fr());jr(Sr,"numel",zr());jr(Sr,"offset",pe());jr(Sr,"order",Wr());jr(Sr,"outputPolicyEnum2Str",Za());jr(Sr,"outputPolicyResolveEnum",Q2());jr(Sr,"outputPolicyResolveStr",ep());jr(Sr,"outputPolicyStr2Enum",Xa());jr(Sr,"prependSingletonDimensions",up());jr(Sr,"removeSingletonDimensions",xp());jr(Sr,"reverse",bp());jr(Sr,"reverseDimension",Ya());jr(Sr,"serializeMetaData",Ip());jr(Sr,"shape",Jr());jr(Sr,"shape2strides",Gr());jr(Sr,"singletonDimensions",Rp());jr(Sr,"slice",Mr());jr(Sr,"sliceAssign",Wa());jr(Sr,"sliceDimension",ut());jr(Sr,"sliceDimensionFrom",ft());jr(Sr,"sliceDimensionTo",dt());jr(Sr,"sliceFrom",$p());jr(Sr,"sliceTo",im());jr(Sr,"strides",ne());jr(Sr,"strides2offset",Zr());jr(Sr,"strides2order",Ne());jr(Sr,"sub2ind",lt());jr(Sr,"ndarray2array",ct());jr(Sr,"transpose",mm());jr(Sr,"unary",tx());jr(Sr,"unaryBy",Gq());jr(Sr,"unaryLoopOrder",Ir());jr(Sr,"unaryOutputDataType",Wq());jr(Sr,"unaryBlockSize",kr());jr(Sr,"vind2bind",me());jr(Sr,"wrapIndex",ji());jr(Sr,"zeros",rg());jr(Sr,"zerosLike",tg());vg.exports=Sr});var ng=P(function(hir,og){"use strict";var bB=require("@stdlib/assert/is-ndarray-like"),SB=require("@stdlib/assert/is-collection"),wB=require("@stdlib/assert/is-nonnegative-integer").isPrimitive,pa=require("@stdlib/array/base/copy-indexed"),jB=Oe(),EB=Yr(),_B=ze(),OB=Fe(),TB=Te(),IB=Ue(),ma=require("@stdlib/string/format");function kB(r,a){var e,i,v,t,o,s,u,f,n;if(!bB(r))throw new TypeError(ma("invalid argument. First argument must be an ndarray. Value: `%s`.",r));if(!SB(a))throw new TypeError(ma("invalid argument. Second argument must be an array of nonnegative integers. Value: `%s`.",a));if(o=a.length,v=EB(r),s=v.length,o=0;f--)if(n=s-o+f,!(n<0)){if(u=v[n],i=a[f],!wB(i))throw new TypeError(ma("invalid argument. Second argument must be an array of nonnegative integers. Value: `%s`.","["+a.join(",")+"]"));if(i!==0&&i1){if(a=arguments[1],!UB(a))throw new TypeError(pt("invalid argument. Options argument must be an object. Value: `%s`.",a));Qa(a,"dtype")?e=a.dtype:e=gg,Qa(a,"order")?i=a.order:i=hg,Qa(a,"mode")&&(t.mode=a.mode),Qa(a,"submode")&&(t.submode=a.submode)}else e=gg,i=hg;if(typeof r=="number")f=[r];else if(YB(r))f=r;else throw new TypeError(pt("invalid argument. First argument must be either a nonnegative integer or an array of nonnegative integers. Value: `%s`.",r));if(v=f.length,v>0){if(s=XB(f),s!==s||s<0)throw new TypeError(pt("invalid argument. First argument must be either a nonnegative integer or an array of nonnegative integers. Value: `%s`.",r));u=KB(f,i)}else s=1,u=[0];return e==="binary"?o=ZB(s):o=JB(s,e),new WB(e,o,f,u,GB(f,u),i,t)}Sg.exports=QB});var Eg=P(function(_ir,jg){"use strict";var HB=wg();jg.exports=HB});var kg=P(function(Oir,Ig){"use strict";var $B=require("@stdlib/assert/is-ndarray-like"),rF=require("@stdlib/assert/is-plain-object"),eF=require("@stdlib/assert/is-nonnegative-integer-array").primitives,xa=require("@stdlib/assert/has-own-property"),aF=Gr(),iF=Zr(),tF=zr(),_g=Oe(),Og=Yr(),Tg=Te(),vF=ye(),sF=require("@stdlib/array/empty"),oF=require("@stdlib/buffer/alloc-unsafe"),mt=require("@stdlib/string/format");function nF(r){var a,e,i,v,t,o,s,u,f;if(!$B(r))throw new TypeError(mt("invalid argument. First argument must be an ndarray-like object. Value: `%s`.",r));if(t={},arguments.length>1){if(a=arguments[1],!rF(a))throw new TypeError(mt("invalid argument. Options argument must be an object. Value: `%s`.",a));if(xa(a,"dtype")?e=a.dtype:e=_g(r),xa(a,"shape")){if(f=a.shape,typeof f=="number"&&(f=[f]),!eF(f))throw new TypeError(mt("invalid option. `%s` option must be a nonnegative integer or an array of nonnegative integers. Option: `%s`.","shape",f))}else f=Og(r);xa(a,"order")?i=a.order:i=Tg(r),xa(a,"mode")&&(t.mode=a.mode),xa(a,"submode")&&(t.submode=a.submode)}else e=_g(r),f=Og(r),i=Tg(r);return v=f.length,v>0?(s=tF(f),u=aF(f,i)):(s=1,u=[0]),e==="binary"?o=oF(s):o=sF(s,e),new vF(e,o,f,u,iF(f,u),i,t)}Ig.exports=nF});var Ng=P(function(Tir,Ag){"use strict";var uF=kg();Ag.exports=uF});var xt=P(function(Iir,Rg){"use strict";var fF=/^-?[0-9]+$/;Rg.exports=fF});var qt=P(function(kir,Dg){"use strict";var dF=/:/;Dg.exports=dF});var Cg=P(function(Air,zg){"use strict";var lF=require("@stdlib/string/base/trim"),cF=require("@stdlib/string/base/replace"),gt=require("@stdlib/slice/multi"),yF=require("@stdlib/slice/base/str2multislice"),pF=require("@stdlib/slice/base/seq2multislice"),mF=require("@stdlib/slice/base/str2slice"),Ce=require("@stdlib/string/format"),xF=xt(),qF=qt();function gF(r,a){var e,i,v,t;if(i=lF(a),v=i[0],v==="S"){if(t=mF(a),t===null)throw new Error(Ce("invalid operation. Unsupported slice operation. Value: `%s`.",a));t=new gt(t)}else if(v==="M"){if(t=yF(i),t===null)throw new Error(Ce("invalid operation. Unsupported slice operation. Value: `%s`.",a))}else if(xF.test(i))t=parseInt(i,10),t=new gt(t);else if(qF.test(i)){if(e=r.shape,t=pF(i,e,!0),t.code)throw t.code==="ERR_SLICE_INVALID_INCREMENT"?new Error(Ce("invalid operation. A subsequence increment must be a non-zero integer. Value: `%s`.",a)):t.code==="ERR_SLICE_INVALID_ELLIPSIS"?new Error(Ce("invalid operation. A subsequence may only include a single ellipsis. Value: `%s`.",a)):t.code==="ERR_SLICE_INVALID_SUBSEQUENCE"?new Error(Ce("invalid operation. Unsupported slice operation. Value: `%s`.",a)):new RangeError(Ce("invalid operation. Number of slice dimensions does not match the number of array dimensions. Array shape: (%s). Slice dimensions: %u.",e.join(","),cF(i,/\.\.\.,/,"").split(",").length))}else if(i.length===0||i==="...")t=new gt;else throw new Error(Ce("invalid operation. Unsupported slice operation. Value: `%s`.",a));return t}zg.exports=gF});var Mg=P(function(Nir,Vg){"use strict";var hF=require("@stdlib/string/base/trim"),bF=require("@stdlib/string/base/replace"),Pg=require("@stdlib/slice/multi"),SF=require("@stdlib/slice/base/str2multislice"),Lg=require("@stdlib/slice/base/seq2multislice"),wF=require("@stdlib/slice/base/str2slice"),Ae=require("@stdlib/string/format"),jF=xt();function EF(r,a,e){var i,v,t,o;if(v=hF(a),t=v[0],t==="S"){if(o=wF(a),o===null)throw new Error(Ae("invalid operation. Unsupported slice operation. Value: `%s`.",a));o=new Pg(o)}else if(t==="M"){if(o=SF(v),o===null)throw new Error(Ae("invalid operation. Unsupported slice operation. Value: `%s`.",a))}else if(jF.test(v))o=parseInt(v,10),o=new Pg(o);else if(v.length>0){if(i=r.shape,o=Lg(v,i,!0),o.code){if(o.code==="ERR_SLICE_INVALID_INCREMENT")throw new Error(Ae("invalid operation. A subsequence increment must be a non-zero integer. Value: `%s`.",a));if(o.code==="ERR_SLICE_INVALID_ELLIPSIS")throw new Error(Ae("invalid operation. A subsequence may only include a single ellipsis. Value: `%s`.",a));if(o.code==="ERR_SLICE_INVALID_SUBSEQUENCE")throw new Error(Ae("invalid operation. Unsupported slice operation. Value: `%s`.",a));if(o.code==="ERR_SLICE_TOO_MANY_DIMENSIONS")throw new RangeError(Ae("invalid operation. Number of slice dimensions does not match the number of array dimensions. Array shape: (%s). Slice dimensions: %u.",r.shape.join(","),bF(v,/\.\.\.,/,"").split(",").length));if(o.code==="ERR_SLICE_OUT_OF_BOUNDS"){if(e)throw new RangeError(Ae("invalid operation. Slice exceeds array bounds. Array shape: (%s).",i.join(",")));o=Lg(v,i,!1)}}}else throw new RangeError(Ae("invalid operation. Number of slice dimensions does not match the number of array dimensions. Array shape: (%s). Slice dimensions: %u.",r.shape.join(","),0));return o}Vg.exports=EF});var Ug=P(function(Rir,Fg){"use strict";var _F=require("@stdlib/string/base/trim"),OF=require("@stdlib/slice/base/str2multislice"),Bg=require("@stdlib/slice/base/seq2multislice"),TF=require("@stdlib/slice/base/sargs2multislice"),Xe=require("@stdlib/string/format"),IF=qt();function kF(r,a,e){var i,v,t,o;if(v=_F(a),t=v[0],t==="M"){if(o=OF(v),o===null)throw new Error(Xe("invalid operation. Unsupported slice operation. Value: `%s`.",a))}else if(IF.test(v)||v==="..."){if(i=r.shape,o=Bg(v,i,!0),o.code){if(o.code==="ERR_SLICE_INVALID_INCREMENT")throw new Error(Xe("invalid operation. A subsequence increment must be a non-zero integer. Value: `%s`.",a));if(o.code==="ERR_SLICE_INVALID_ELLIPSIS")throw new Error(Xe("invalid operation. A subsequence may only include a single ellipsis. Value: `%s`.",a));if(o.code==="ERR_SLICE_INVALID_SUBSEQUENCE")throw new Error(Xe("invalid operation. Unsupported slice operation. Value: `%s`.",a));if(o.code==="ERR_SLICE_OUT_OF_BOUNDS"){if(e)throw new RangeError(Xe("invalid operation. Slice exceeds array bounds. Array shape: (%s).",i.join(",")));o=Bg(v,i,!1)}}}else if(o=TF(v),o===null)throw new Error(Xe("invalid operation. Unsupported slice operation. Value: `%s`.",a));return o}Fg.exports=kF});var ht=P(function(Dir,Yg){"use strict";var AF=require("@stdlib/utils/properties-in"),NF=require("@stdlib/array/base/assert/contains").factory,RF=ye(),DF=ge(),zF=NF(AF(new RF("generic",[0],[],[0],0,DF.get("order"))));Yg.exports=zF});var Gg=P(function(zir,Kg){"use strict";var CF=require("@stdlib/assert/is-function");function PF(r,a,e){var i=r[a];if(CF(i))return v;return i;function v(){var t,o;for(t=[],o=0;o=aU&&r<=eU?"float32":"float64":r>-Ha&&r=iU?"int8":r>=tU?"int16":r>=vU?"int32":"float64":r<=sU?"uint8":r<=oU?"uint16":r<=nU?"uint32":"float64":r>-Ha&&r1){if(a=arguments[1],!dU(a))throw new TypeError(n4("invalid argument. Options argument must be an object. Value: `%s`.",a));jt(a,"dtype")&&(e.dtype=a.dtype),jt(a,"order")&&(e.order=a.order),jt(a,"readonly")&&(e.readonly=a.readonly)}if(v=lU(r),e.dtype===""?v?o="float64":cU(r)?o="complex128":o="generic":o=e.dtype,i=xU(o,1),i===null)throw new TypeError(n4("invalid option. `%s` option must be a recognized data type. Option: `%s`.","dtype",o));return/^complex/.test(o)&&v?s=[r,0]:s=r,yU(i)?t=pU(o):t=mU(o),t(i,0,s),new qU(o,i,[],[0],0,e.order,e)}u4.exports=bU});var Et=P(function(Yir,d4){"use strict";var SU=f4();d4.exports=SU});var y4=P(function(Kir,c4){"use strict";var wU=Wa(),jU=require("@stdlib/assert/is-ndarray-like"),EU=require("@stdlib/assert/is-number").isPrimitive,_U=require("@stdlib/assert/is-integer").isPrimitive,OU=require("@stdlib/assert/is-complex-like"),TU=oa(),IU=Ca(),kU=Va(),AU=La(),l4=_a(),NU=require("@stdlib/constants/int8/max"),RU=require("@stdlib/constants/int16/max"),DU=require("@stdlib/constants/int32/max"),$a=wt(),zU=require("@stdlib/complex/dtype"),We=Et(),Pe=require("@stdlib/string/format"),CU=bt(),PU=St();function Qe(r){return{dtype:r}}function LU(r,a,e,i,v){var t,o,s,u,f;if(!jU(e))if(s=r.dtype,s==="generic")e=We(e,Qe(s));else if(EU(e))if(IU(s))e=We(e,Qe(s));else if(kU(s))if(o=$a(e),l4(o,s))e=We(e,Qe(s));else throw new TypeError(Pe("invalid operation. Assigned value cannot be safely cast to the target array data type. Data types: [%s, %s].",o,s));else if(AU(s)){if(!_U(e))throw new TypeError(Pe("invalid operation. Assigned value cannot be safely cast to the target array data type. Data types: [%s, %s].",$a(e),s));if(e<0?o=$a(e):e<=NU?o="int8":e<=RU?o="int16":e<=DU?o="int32":o="float64",l4(o,s))e=We(e,Qe(s));else throw new TypeError(Pe("invalid operation. Assigned value cannot be safely cast to the target array data type. Data types: [%s, %s].",o,s))}else if(s==="binary")if(o=$a(e),o==="uint8")e=We(e,Qe(s));else throw new TypeError(Pe("invalid operation. Assigned value cannot be safely cast to the target array data type. Data types: [%s, %s].",o,s));else throw new TypeError(Pe("invalid operation. Unsupported target array data type. Data type: `%s`.",s));else if(OU(e)){if(!TU(s))throw new TypeError(Pe("invalid operation. Assigned value cannot be safely cast to the target array data type. Data types: [%s, %s].",zU(e),s));e=We(e,Qe(s))}else throw new TypeError(Pe("invalid operation. Assigned value cannot be safely cast to the target array data type. Data types: [%s, %s].",typeof e,s));t=!1,f=v(r,a,t);try{return wU(e,i,f,t),!0}catch(n){throw u=PU(n),new u(CU(n.message))}}c4.exports=LU});var m4=P(function(Gir,p4){"use strict";var VU=ht(),MU=r4(),BU=y4();function FU(r){return a;function a(e,i,v,t){return VU(i)?MU(e,i,v):BU(e,i,v,t,r)}}p4.exports=FU});var w4=P(function(Jir,S4){"use strict";var UU=require("@stdlib/utils/define-nonenumerable-read-only-property"),q4=ye(),YU=require("@stdlib/utils/inherit"),x4=require("@stdlib/proxy/ctor"),g4=Cg(),h4=Mg(),b4=Ug(),_t=Hg(),Ot=m4(),KU=_t(g4),GU=Ot(g4),JU=_t(h4),ZU=Ot(h4),XU=_t(b4),WU=Ot(b4);function He(r,a,e,i,v,t,o){var s,u,f;return u=arguments.length,this instanceof He?(q4.call(this,r,a,e,i,v,t,u<7?{}:o),x4?(f=e.length,s={},f===0?(s.get=KU,s.set=GU):f===1?(s.get=JU,s.set=ZU):(s.get=XU,s.set=WU),new x4(this,s)):(console.warn("WARNING: Proxy objects are not supported in the current environment. Some `FancyArray` functionality may not be available."),this)):u<7?new He(r,a,e,i,v,t):new He(r,a,e,i,v,t,o)}YU(He,q4);UU(He,"name","ndarray");S4.exports=He});var E4=P(function(Zir,j4){"use strict";var QU=w4();j4.exports=QU});var Tt=P(function(Xir,HU){HU.exports={mode:"throw",order:"row-major"}});var kt=P(function(Wir,O4){"use strict";var $U=require("@stdlib/assert/is-plain-object"),_4=require("@stdlib/assert/has-own-property"),rY=ee(),eY=aa(),It=require("@stdlib/string/format");function aY(r,a){return $U(a)?_4(a,"mode")&&(r.mode=a.mode,!eY(r.mode))?new TypeError(It("invalid option. `%s` option must be a supported/recognized mode. Option: `%s`.","mode",r.mode)):_4(a,"order")&&(r.order=a.order,!rY(r.order))?new TypeError(It("invalid option. `%s` option must be a supported/recognized order. Option: `%s`.","order",r.order)):null:new TypeError(It("invalid argument. Options argument must be an object. Value: `%s`.",a))}O4.exports=aY});var A4=P(function(Qir,k4){"use strict";var iY=require("@stdlib/assert/is-nonnegative-integer-array").primitives,tY=require("@stdlib/assert/is-integer").isPrimitive,vY=Gr(),sY=Ga(),T4=require("@stdlib/string/format"),I4=Tt(),oY=kt();function nY(r,a,e){var i,v;if(i={},i.mode=I4.mode,i.order=I4.order,arguments.length>2&&(v=oY(i,e),v))throw v;if(!iY(r))throw new TypeError(T4("invalid argument. Shape argument must be an array-like object containing nonnegative integers. Value: `%s`.",r));if(!tY(a))throw new TypeError(T4("invalid argument. Linear index must be integer valued. Value: `%s`.",a));return sY(r,vY(r,i.order),0,i.order,a,i.mode)}k4.exports=nY});var D4=P(function(Hir,R4){"use strict";var uY=require("@stdlib/assert/is-nonnegative-integer-array").primitives,fY=require("@stdlib/assert/is-integer").isPrimitive,dY=Gr(),lY=Ga().assign,ri=require("@stdlib/string/format"),N4=Tt(),cY=kt();function yY(r,a,e,i){var v,t,o;if(v={},v.mode=N4.mode,v.order=N4.order,arguments.length===4){if(o=cY(v,arguments[2]),o)throw o;if(typeof i!="object"||i===null)throw new TypeError(ri("invalid argument. Output argument must be either an array, typed array, or object. Value: `%s`.",i));t=i}else if(t=e,typeof t!="object"||t===null)throw new TypeError(ri("invalid argument. Output argument must be either an array, typed array, or object. Value: `%s`.",t));if(!uY(r))throw new TypeError(ri("invalid argument. Shape argument must be an array-like object containing nonnegative integers. Value: `%s`.",r));if(!fY(a))throw new TypeError(ri("invalid argument. Linear index must be integer valued. Value: `%s`.",a));return lY(r,dY(r,v.order),0,v.order,a,v.mode,t)}R4.exports=yY});var P4=P(function($ir,C4){"use strict";var pY=require("@stdlib/utils/define-nonenumerable-read-only-property"),z4=A4(),mY=D4();pY(z4,"assign",mY);C4.exports=z4});var B4=P(function(rtr,M4){"use strict";var At=require("@stdlib/utils/define-nonenumerable-read-only-property"),xY=require("@stdlib/assert/is-plain-object"),qY=require("@stdlib/assert/is-boolean").isPrimitive,gY=require("@stdlib/assert/is-ndarray-like"),hY=re(),bY=require("@stdlib/assert/has-own-property"),L4=require("@stdlib/symbol/iterator"),SY=require("@stdlib/array/base/zeros"),wY=Yr(),jY=zr(),EY=Mr(),_Y=ue().assign,OY=require("@stdlib/slice/base/args2multislice"),ei=require("@stdlib/string/format");function V4(r){var a,e,i,v,t,o,s,u,f,n,d;if(!gY(r))throw new TypeError(ei("invalid argument. First argument must be an ndarray. Value: `%s`.",r));if(v={writable:!1},arguments.length>1){if(a=arguments[1],!xY(a))throw new TypeError(ei("invalid argument. Options argument must be an object. Value: `%s`.",a));if(bY(a,"readonly")){if(!qY(a.readonly))throw new TypeError(ei("invalid option. `%s` option must be a boolean. Option: `%s`.","readonly",a.readonly));if(v.writable=!a.readonly,v.writable&&hY(r))throw new Error(ei("invalid option. Cannot write to read-only array."))}}if(e=wY(r),i=e.length,i<2)throw new TypeError("invalid argument. First argument must be an ndarray having at least two dimensions.");return n=jY(e),n===0&&(o=!0),n/=e[i-2],u=i-1,f=e[u],d=-1,s=SY(i),s[i-2]=null,t={},At(t,"next",x),At(t,"return",b),L4&&At(t,L4,p),t;function x(){var l,h,m;return d+=1,o||d>=n?{done:!0}:(l=s.slice(),h=OY(s),m=(s[u]+1)%f,s[u]=m,m===0&&(s=_Y(e,"row-major",s,u-2,s)),{value:[l,EY(r,h,!0,v.writable)],done:!1})}function b(l){return o=!0,arguments.length?{value:l,done:!0}:{done:!0}}function p(){return V4(r,v)}}M4.exports=V4});var U4=P(function(etr,F4){"use strict";var TY=B4();F4.exports=TY});var J4=P(function(atr,G4){"use strict";var Nt=require("@stdlib/utils/define-nonenumerable-read-only-property"),IY=require("@stdlib/assert/is-plain-object"),kY=require("@stdlib/assert/is-boolean").isPrimitive,AY=require("@stdlib/assert/is-ndarray-like"),NY=re(),RY=require("@stdlib/assert/has-own-property"),Y4=require("@stdlib/symbol/iterator"),DY=require("@stdlib/array/base/zeros"),zY=Yr(),CY=zr(),PY=Mr(),LY=ue().assign,VY=require("@stdlib/slice/base/args2multislice"),ai=require("@stdlib/string/format");function K4(r){var a,e,i,v,t,o,s,u,f,n,d;if(!AY(r))throw new TypeError(ai("invalid argument. First argument must be an ndarray. Value: `%s`.",r));if(v={writable:!1},arguments.length>1){if(a=arguments[1],!IY(a))throw new TypeError(ai("invalid argument. Options argument must be an object. Value: `%s`.",a));if(RY(a,"readonly")){if(!kY(a.readonly))throw new TypeError(ai("invalid option. `%s` option must be a boolean. Option: `%s`.","readonly",a.readonly));if(v.writable=!a.readonly,v.writable&&NY(r))throw new Error(ai("invalid option. Cannot write to read-only array."))}}if(e=zY(r),i=e.length,i<2)throw new TypeError("invalid argument. First argument must be an ndarray having at least two dimensions.");return n=CY(e),n===0&&(o=!0),n/=e[i-2],u=i-1,f=e[u],d=-1,s=DY(i),s[i-2]=null,t={},Nt(t,"next",x),Nt(t,"return",b),Y4&&Nt(t,Y4,p),t;function x(){var l,h;return d+=1,o||d>=n?{done:!0}:(l=VY(s),h=(s[u]+1)%f,s[u]=h,h===0&&(s=LY(e,"row-major",s,u-2,s)),{value:PY(r,l,!0,v.writable),done:!1})}function b(l){return o=!0,arguments.length?{value:l,done:!0}:{done:!0}}function p(){return K4(r,v)}}G4.exports=K4});var X4=P(function(itr,Z4){"use strict";var MY=J4();Z4.exports=MY});var $4=P(function(ttr,H4){"use strict";var Rt=require("@stdlib/utils/define-nonenumerable-read-only-property"),BY=require("@stdlib/assert/is-plain-object"),FY=ee(),UY=require("@stdlib/assert/is-ndarray-like"),YY=require("@stdlib/assert/has-own-property"),W4=require("@stdlib/symbol/iterator"),KY=require("@stdlib/array/base/zeros"),GY=Yr(),JY=zr(),ZY=ue().assign,Dt=require("@stdlib/string/format");function Q4(r){var a,e,i,v,t,o,s,u,f,n;if(!UY(r))throw new TypeError(Dt("invalid argument. First argument must be an ndarray. Value: `%s`.",r));if(v={order:r.order},arguments.length>1){if(a=arguments[1],!BY(a))throw new TypeError(Dt("invalid argument. Options argument must be an object. Value: `%s`.",a));if(YY(a,"order")){if(!FY(a.order))throw new TypeError(Dt("invalid option. `%s` option must be a recognized order. Option: `%s`.","order",a.order));v.order=a.order}}return e=GY(r),i=e.length,f=JY(e),f===0&&(o=!0),v.order==="row-major"?u=i-1:u=0,n=-1,s=KY(i),t={},Rt(t,"next",d),Rt(t,"return",x),W4&&Rt(t,W4,b),t;function d(){return n+=1,o||n>=f?{done:!0}:(n>0&&(s=ZY(e,v.order,s,u,s)),{value:[s.slice(),r.get.apply(r,s)],done:!1})}function x(p){return o=!0,arguments.length?{value:p,done:!0}:{done:!0}}function b(){return Q4(r,v)}}H4.exports=Q4});var eh=P(function(vtr,rh){"use strict";var XY=$4();rh.exports=XY});var vh=P(function(str,th){"use strict";var zt=require("@stdlib/utils/define-nonenumerable-read-only-property"),WY=require("@stdlib/assert/is-plain-object"),QY=ee(),HY=require("@stdlib/assert/is-collection"),$Y=require("@stdlib/assert/is-nonnegative-integer").isPrimitive,rK=require("@stdlib/assert/has-own-property"),ah=require("@stdlib/symbol/iterator"),eK=require("@stdlib/array/base/zeros"),aK=zr(),iK=ue().assign,ii=require("@stdlib/string/format");function ih(r){var a,e,i,v,t,o,s,u,f,n;if(!HY(r))throw new TypeError(ii("invalid argument. First argument must be an array of nonnegative integers. Value: `%s`.",r));if(i={order:"row-major"},arguments.length>1){if(a=arguments[1],!WY(a))throw new TypeError(ii("invalid argument. Options argument must be an object. Value: `%s`.",a));if(rK(a,"order")){if(!QY(a.order))throw new TypeError(ii("invalid option. `%s` option must be a recognized order. Option: `%s`.","order",a.order));i.order=a.order}}for(e=r.length,u=[],n=0;n=f?{done:!0}:(n>0&&(o=iK(r,i.order,o,s,o)),{value:o.slice(),done:!1})}function x(p){return t=!0,arguments.length?{value:p,done:!0}:{done:!0}}function b(){return ih(u,i)}}th.exports=ih});var oh=P(function(otr,sh){"use strict";var tK=vh();sh.exports=tK});var dh=P(function(ntr,fh){"use strict";var Ct=require("@stdlib/utils/define-nonenumerable-read-only-property"),vK=require("@stdlib/assert/is-plain-object"),sK=require("@stdlib/assert/is-boolean").isPrimitive,oK=require("@stdlib/assert/is-ndarray-like"),nK=re(),uK=require("@stdlib/assert/has-own-property"),nh=require("@stdlib/symbol/iterator"),fK=require("@stdlib/array/base/zeros"),dK=Yr(),lK=zr(),cK=Mr(),yK=ue().assign,pK=require("@stdlib/slice/base/args2multislice"),ti=require("@stdlib/string/format");function uh(r){var a,e,i,v,t,o,s,u,f,n,d;if(!oK(r))throw new TypeError(ti("invalid argument. First argument must be an ndarray. Value: `%s`.",r));if(v={writable:!1},arguments.length>1){if(a=arguments[1],!vK(a))throw new TypeError(ti("invalid argument. Options argument must be an object. Value: `%s`.",a));if(uK(a,"readonly")){if(!sK(a.readonly))throw new TypeError(ti("invalid option. `%s` option must be a boolean. Option: `%s`.","readonly",a.readonly));if(v.writable=!a.readonly,v.writable&&nK(r))throw new Error(ti("invalid option. Cannot write to read-only array."))}}if(e=dK(r),i=e.length,i<3)throw new TypeError("invalid argument. First argument must be an ndarray having at least three dimensions.");return n=lK(e),n===0&&(o=!0),n/=e[i-1]*e[i-2],u=i-3,f=e[u],d=-1,s=fK(i),s[i-1]=null,s[i-2]=null,t={},Ct(t,"next",x),Ct(t,"return",b),nh&&Ct(t,nh,p),t;function x(){var l,h;return d+=1,o||d>=n?{done:!0}:(l=pK(s),h=(s[u]+1)%f,s[u]=h,h===0&&(s=yK(e,"row-major",s,u-1,s)),{value:cK(r,l,!0,v.writable),done:!1})}function b(l){return o=!0,arguments.length?{value:l,done:!0}:{done:!0}}function p(){return uh(r,v)}}fh.exports=uh});var ch=P(function(utr,lh){"use strict";var mK=dh();lh.exports=mK});var xh=P(function(ftr,mh){"use strict";var Pt=require("@stdlib/utils/define-nonenumerable-read-only-property"),xK=require("@stdlib/assert/is-plain-object"),qK=require("@stdlib/assert/is-boolean").isPrimitive,gK=require("@stdlib/assert/is-ndarray-like"),hK=re(),bK=require("@stdlib/assert/has-own-property"),yh=require("@stdlib/symbol/iterator"),SK=require("@stdlib/array/base/zeros"),wK=Yr(),jK=zr(),EK=Mr(),_K=ue().assign,OK=require("@stdlib/slice/base/args2multislice"),vi=require("@stdlib/string/format");function ph(r){var a,e,i,v,t,o,s,u,f,n,d;if(!gK(r))throw new TypeError(vi("invalid argument. First argument must be an ndarray. Value: `%s`.",r));if(v={writable:!1},arguments.length>1){if(a=arguments[1],!xK(a))throw new TypeError(vi("invalid argument. Options argument must be an object. Value: `%s`.",a));if(bK(a,"readonly")){if(!qK(a.readonly))throw new TypeError(vi("invalid option. `%s` option must be a boolean. Option: `%s`.","readonly",a.readonly));if(v.writable=!a.readonly,v.writable&&hK(r))throw new Error(vi("invalid option. Cannot write to read-only array."))}}if(e=wK(r),i=e.length,i<3)throw new TypeError("invalid argument. First argument must be an ndarray having at least three dimensions.");return n=jK(e),n===0&&(o=!0),n/=e[i-1]*e[i-2],u=i-3,f=e[u],d=-1,s=SK(i),s[i-1]=null,s[i-2]=null,t={},Pt(t,"next",x),Pt(t,"return",b),yh&&Pt(t,yh,p),t;function x(){var l,h,m;return d+=1,o||d>=n?{done:!0}:(l=s.slice(),h=OK(s),m=(s[u]+1)%f,s[u]=m,m===0&&(s=_K(e,"row-major",s,u-1,s)),{value:[l,EK(r,h,!0,v.writable)],done:!1})}function b(l){return o=!0,arguments.length?{value:l,done:!0}:{done:!0}}function p(){return ph(r,v)}}mh.exports=ph});var gh=P(function(dtr,qh){"use strict";var TK=xh();qh.exports=TK});var wh=P(function(ltr,Sh){"use strict";var Lt=require("@stdlib/utils/define-nonenumerable-read-only-property"),IK=require("@stdlib/assert/is-plain-object"),kK=require("@stdlib/assert/is-boolean").isPrimitive,AK=require("@stdlib/assert/is-ndarray-like"),NK=re(),RK=require("@stdlib/assert/has-own-property"),hh=require("@stdlib/symbol/iterator"),DK=require("@stdlib/array/base/zeros"),zK=Yr(),CK=zr(),PK=Mr(),LK=ue().assign,VK=require("@stdlib/slice/base/args2multislice"),si=require("@stdlib/string/format");function bh(r){var a,e,i,v,t,o,s,u,f,n,d;if(!AK(r))throw new TypeError(si("invalid argument. First argument must be an ndarray. Value: `%s`.",r));if(v={writable:!1},arguments.length>1){if(a=arguments[1],!IK(a))throw new TypeError(si("invalid argument. Options argument must be an object. Value: `%s`.",a));if(RK(a,"readonly")){if(!kK(a.readonly))throw new TypeError(si("invalid option. `%s` option must be a boolean. Option: `%s`.","readonly",a.readonly));if(v.writable=!a.readonly,v.writable&&NK(r))throw new Error(si("invalid option. Cannot write to read-only array."))}}if(e=zK(r),i=e.length,i<2)throw new TypeError("invalid argument. First argument must be an ndarray having at least two dimensions.");return n=CK(e),n===0&&(o=!0),n/=e[i-1],u=i-2,f=e[u],d=-1,s=DK(i),s[i-1]=null,t={},Lt(t,"next",x),Lt(t,"return",b),hh&&Lt(t,hh,p),t;function x(){var l,h,m;return d+=1,o||d>=n?{done:!0}:(l=s.slice(),h=VK(s),m=(s[u]+1)%f,s[u]=m,m===0&&(s=LK(e,"row-major",s,u-1,s)),{value:[l,PK(r,h,!0,v.writable)],done:!1})}function b(l){return o=!0,arguments.length?{value:l,done:!0}:{done:!0}}function p(){return bh(r,v)}}Sh.exports=bh});var Eh=P(function(ctr,jh){"use strict";var MK=wh();jh.exports=MK});var Ih=P(function(ytr,Th){"use strict";var Vt=require("@stdlib/utils/define-nonenumerable-read-only-property"),BK=require("@stdlib/assert/is-plain-object"),FK=require("@stdlib/assert/is-boolean").isPrimitive,UK=require("@stdlib/assert/is-ndarray-like"),YK=re(),KK=require("@stdlib/assert/has-own-property"),_h=require("@stdlib/symbol/iterator"),GK=require("@stdlib/array/base/zeros"),JK=Yr(),ZK=zr(),XK=Mr(),WK=ue().assign,QK=require("@stdlib/slice/base/args2multislice"),oi=require("@stdlib/string/format");function Oh(r){var a,e,i,v,t,o,s,u,f,n,d;if(!UK(r))throw new TypeError(oi("invalid argument. First argument must be an ndarray. Value: `%s`.",r));if(v={writable:!1},arguments.length>1){if(a=arguments[1],!BK(a))throw new TypeError(oi("invalid argument. Options argument must be an object. Value: `%s`.",a));if(KK(a,"readonly")){if(!FK(a.readonly))throw new TypeError(oi("invalid option. `%s` option must be a boolean. Option: `%s`.","readonly",a.readonly));if(v.writable=!a.readonly,v.writable&&YK(r))throw new Error(oi("invalid option. Cannot write to read-only array."))}}if(e=JK(r),i=e.length,i<2)throw new TypeError("invalid argument. First argument must be an ndarray having at least two dimensions.");return n=ZK(e),n===0&&(o=!0),n/=e[i-1],u=i-2,f=e[u],d=-1,s=GK(i),s[i-1]=null,t={},Vt(t,"next",x),Vt(t,"return",b),_h&&Vt(t,_h,p),t;function x(){var l,h;return d+=1,o||d>=n?{done:!0}:(l=QK(s),h=(s[u]+1)%f,s[u]=h,h===0&&(s=WK(e,"row-major",s,u-1,s)),{value:XK(r,l,!0,v.writable),done:!1})}function b(l){return o=!0,arguments.length?{value:l,done:!0}:{done:!0}}function p(){return Oh(r,v)}}Th.exports=Oh});var Ah=P(function(ptr,kh){"use strict";var HK=Ih();kh.exports=HK});var Rh=P(function(mtr,Nh){"use strict";var $K=require("@stdlib/assert/is-ndarray-like"),rG=ct(),eG=ze(),aG=Fe(),iG=Yr(),tG=Te(),vG=Ue(),sG=require("@stdlib/string/format");function oG(r){if(!$K(r))throw new TypeError(sG("invalid argument. Must provide an ndarray. Value: `%s`.",r));return rG(vG(r),iG(r),eG(r),aG(r),tG(r))}Nh.exports=oG});var Mt=P(function(xtr,Dh){"use strict";var nG=Rh();Dh.exports=nG});var Ph=P(function(qtr,Ch){"use strict";var Bt=require("@stdlib/utils/define-nonenumerable-read-only-property"),uG=require("@stdlib/assert/is-function"),fG=require("@stdlib/assert/is-iterator-like"),ni=require("@stdlib/symbol/iterator"),dG=Mt(),lG=require("@stdlib/string/format");function zh(r){var a,e;if(!fG(r))throw new TypeError(lG("invalid argument. First argument must be an iterator protocol-compliant object. Value: `%s`.",r));return a={},Bt(a,"next",i),Bt(a,"return",v),ni&&uG(r[ni])&&Bt(a,ni,t),a;function i(){var o;return e?{done:!0}:(o=r.next(),o.done?(e=!0,o):{value:dG(o.value),done:!1})}function v(o){return e=!0,arguments.length?{value:o,done:!0}:{done:!0}}function t(){return zh(r[ni]())}}Ch.exports=zh});var Vh=P(function(gtr,Lh){"use strict";var cG=Ph();Lh.exports=cG});var Uh=P(function(htr,Fh){"use strict";var Ft=require("@stdlib/utils/define-nonenumerable-read-only-property"),yG=require("@stdlib/assert/is-plain-object"),pG=ee(),mG=require("@stdlib/assert/is-ndarray-like"),xG=require("@stdlib/assert/has-own-property"),Mh=require("@stdlib/symbol/iterator"),qG=require("@stdlib/array/base/zeros"),gG=Yr(),hG=zr(),bG=ue().assign,Ut=require("@stdlib/string/format");function Bh(r){var a,e,i,v,t,o,s,u,f,n;if(!mG(r))throw new TypeError(Ut("invalid argument. First argument must be an ndarray. Value: `%s`.",r));if(v={order:r.order},arguments.length>1){if(a=arguments[1],!yG(a))throw new TypeError(Ut("invalid argument. Options argument must be an object. Value: `%s`.",a));if(xG(a,"order")){if(!pG(a.order))throw new TypeError(Ut("invalid option. `%s` option must be a recognized order. Option: `%s`.","order",a.order));v.order=a.order}}return e=gG(r),i=e.length,f=hG(e),f===0&&(o=!0),v.order==="row-major"?u=i-1:u=0,n=-1,s=qG(i),t={},Ft(t,"next",d),Ft(t,"return",x),Mh&&Ft(t,Mh,b),t;function d(){return n+=1,o||n>=f?{done:!0}:(n>0&&(s=bG(e,v.order,s,u,s)),{value:r.get.apply(r,s),done:!1})}function x(p){return o=!0,arguments.length?{value:p,done:!0}:{done:!0}}function b(){return Bh(r,v)}}Fh.exports=Bh});var Kh=P(function(btr,Yh){"use strict";var SG=Uh();Yh.exports=SG});var Jh=P(function(Str,Gh){"use strict";var xe=require("@stdlib/utils/define-read-only-property"),fe={};xe(fe,"nditerColumnEntries",U4());xe(fe,"nditerColumns",X4());xe(fe,"nditerEntries",eh());xe(fe,"nditerIndices",oh());xe(fe,"nditerMatrices",ch());xe(fe,"nditerMatrixEntries",gh());xe(fe,"nditerRowEntries",Eh());xe(fe,"nditerRows",Ah());xe(fe,"nditer2arrayEach",Vh());xe(fe,"nditerValues",Kh());Gh.exports=fe});var Wh=P(function(wtr,Xh){"use strict";var wG=require("@stdlib/assert/is-ndarray-like"),jG=require("@stdlib/assert/is-collection"),EG=require("@stdlib/assert/is-nonnegative-integer").isPrimitive,Zh=yt(),Yt=require("@stdlib/string/format");function _G(r,a){var e,i,v,t;if(!wG(r))throw new TypeError(Yt("invalid argument. First argument must be an ndarray. Value: `%s`.",r));if(!jG(a))throw new TypeError(Yt("invalid argument. Second argument must be an array of nonnegative integers. Value: `%s`.",a));if(i=a.length,e=r.shape,e.length===i){for(t=0;t0)throw new RangeError(di("invalid argument. Number of slice dimensions does not match the number of array dimensions. Array shape: (%s). Slice dimensions: %u.",o.join(","),0))}if(YG(a)){if(s=a,i>2)throw new Error("invalid invocation. Too many arguments.")}else{if(KG(a)){if(t=a,i>2)throw new Error("invalid invocation. Too many arguments.")}else for(t=[],u=1;u0)throw new RangeError(qa("invalid argument. Number of slice dimensions does not match the number of array dimensions. Array shape: (%s). Slice dimensions: %u.",s.join(","),0))}if(eJ(e)){if(u=e,v>3)throw new Error("invalid invocation. Too many arguments.")}else{if(aJ(e)){if(o=e,v>3)throw new Error("invalid invocation. Too many arguments.")}else for(o=[],f=2;f3){if(i=arguments[3],!cJ(i))throw new TypeError(ga("invalid argument. Options argument must be an object. Value: `%s`.",i));if(gJ(i,"strict")){if(!yJ(i.strict))throw new TypeError(ga("invalid option. `%s` option must be a boolean. Option: `%s`.","strict",i.strict));t.strict=i.strict}}return bJ(r,a,v,t.strict,!1)}_b.exports=SJ});var Ib=P(function(Ltr,Tb){"use strict";var wJ=Ob();Tb.exports=wJ});var Nb=P(function(Vtr,Ab){"use strict";var jJ=require("@stdlib/assert/is-plain-object"),EJ=require("@stdlib/assert/is-boolean").isPrimitive,kb=require("@stdlib/assert/is-integer").isPrimitive,_J=require("@stdlib/assert/is-ndarray-like"),OJ=require("@stdlib/assert/has-own-property"),TJ=ft(),ha=require("@stdlib/string/format");function IJ(r,a,e){var i,v;if(v={strict:!0},!_J(r))throw new TypeError(ha("invalid argument. First argument must be an ndarray. Value: `%s`.",r));if(!kb(a))throw new TypeError(ha("invalid argument. Second argument must be an integer. Value: `%s`.",a));if(!kb(e))throw new TypeError(ha("invalid argument. Third argument must be an integer. Value: `%s`.",e));if(arguments.length>3){if(i=arguments[3],!jJ(i))throw new TypeError(ha("invalid argument. Options argument must be an object. Value: `%s`.",i));if(OJ(i,"strict")){if(!EJ(i.strict))throw new TypeError(ha("invalid option. `%s` option must be a boolean. Option: `%s`.","strict",i.strict));v.strict=i.strict}}return TJ(r,a,e,v.strict,!1)}Ab.exports=IJ});var Db=P(function(Mtr,Rb){"use strict";var kJ=Nb();Rb.exports=kJ});var Pb=P(function(Btr,Cb){"use strict";var AJ=require("@stdlib/assert/is-plain-object"),NJ=require("@stdlib/assert/is-boolean").isPrimitive,zb=require("@stdlib/assert/is-integer").isPrimitive,RJ=require("@stdlib/assert/is-ndarray-like"),DJ=require("@stdlib/assert/has-own-property"),zJ=dt(),ba=require("@stdlib/string/format");function CJ(r,a,e){var i,v;if(v={strict:!0},!RJ(r))throw new TypeError(ba("invalid argument. First argument must be an ndarray. Value: `%s`.",r));if(!zb(a))throw new TypeError(ba("invalid argument. Second argument must be an integer. Value: `%s`.",a));if(!zb(e))throw new TypeError(ba("invalid argument. Third argument must be an integer. Value: `%s`.",e));if(arguments.length>3){if(i=arguments[3],!AJ(i))throw new TypeError(ba("invalid argument. Options argument must be an object. Value: `%s`.",i));if(DJ(i,"strict")){if(!NJ(i.strict))throw new TypeError(ba("invalid option. `%s` option must be a boolean. Option: `%s`.","strict",i.strict));v.strict=i.strict}}return zJ(r,a,e,v.strict,!1)}Cb.exports=CJ});var Vb=P(function(Ftr,Lb){"use strict";var PJ=Pb();Lb.exports=PJ});var Mb=P(function(Utr,LJ){LJ.exports={mode:["throw"],order:"row-major"}});var Ub=P(function(Ytr,Fb){"use strict";var VJ=require("@stdlib/assert/is-plain-object"),Bb=require("@stdlib/assert/has-own-property"),MJ=require("@stdlib/assert/is-array"),BJ=ee(),FJ=aa(),li=require("@stdlib/string/format");function UJ(r,a){var e;if(!VJ(a))return new TypeError(li("invalid argument. Options argument must be an object. Value: `%s`.",a));if(Bb(a,"mode")){if(r.mode=a.mode,!MJ(r.mode))r.mode=[r.mode];else if(r.mode.length===0)return new TypeError(li("invalid option. `%s` option cannot be an empty array.","mode"));for(e=0;ee+1){if(u=o-1,r=arguments[u],t=ZJ(v,r),t)throw t}else u=o;if(s=1,u-s!==e)throw new RangeError(Gt("invalid argument. Number of provided subscripts must match the number of dimensions. ndims: `%u`. Number of subscripts: `%u`.",e,u-s));for(i=new Array(e+4),i[0]=a,i[1]=GJ(a,v.order),i[2]=0;s1){if(a=arguments[1],!QJ(a))throw new TypeError(ci("invalid argument. Options argument must be an object. Value: `%s`.",a));Sa(a,"dtype")?e=a.dtype:e=Xb,Sa(a,"order")?i=a.order:i=Wb,Sa(a,"mode")&&(t.mode=a.mode),Sa(a,"submode")&&(t.submode=a.submode),Sa(a,"readonly")&&(t.readonly=a.readonly)}else e=Xb,i=Wb;if(typeof r=="number")f=[r];else if(HJ(r))f=r;else throw new TypeError(ci("invalid argument. First argument must be either a nonnegative integer or an array of nonnegative integers. Value: `%s`.",r));if(v=f.length,v>0){if(s=aZ(f),s!==s||s<0)throw new TypeError(ci("invalid argument. First argument must be either a nonnegative integer or an array of nonnegative integers. Value: `%s`.",r));u=$J(f,i)}else s=1,u=[0];if(o=eZ(e,s),o===null)throw new TypeError(ci("invalid option. `%s` option must be a recognized data type. Option: `%s`.","dtype",e));return new iZ(e,o,f,u,rZ(f,u),i,t)}Hb.exports=tZ});var e6=P(function(Ztr,r6){"use strict";var vZ=$b();r6.exports=vZ});var s6=P(function(Xtr,v6){"use strict";var sZ=require("@stdlib/assert/is-ndarray-like"),oZ=require("@stdlib/assert/is-plain-object"),nZ=require("@stdlib/assert/is-nonnegative-integer-array").primitives,$e=require("@stdlib/assert/has-own-property"),uZ=Gr(),fZ=Zr(),dZ=ve(),lZ=zr(),a6=Oe(),i6=Yr(),t6=Te(),cZ=ye(),yi=require("@stdlib/string/format");function yZ(r){var a,e,i,v,t,o,s,u,f;if(!sZ(r))throw new TypeError(yi("invalid argument. First argument must be an ndarray-like object. Value: `%s`.",r));if(t={},arguments.length>1){if(a=arguments[1],!oZ(a))throw new TypeError(yi("invalid argument. Options argument must be an object. Value: `%s`.",a));if($e(a,"dtype")?e=a.dtype:e=a6(r),$e(a,"shape")){if(f=a.shape,typeof f=="number"&&(f=[f]),!nZ(f))throw new TypeError(yi("invalid option. `%s` option must be a nonnegative integer or an array of nonnegative integers. Option: `%s`.","shape",f))}else f=i6(r);$e(a,"order")?i=a.order:i=t6(r),$e(a,"mode")&&(t.mode=a.mode),$e(a,"submode")&&(t.submode=a.submode),$e(a,"readonly")&&(t.readonly=a.readonly)}else e=a6(r),f=i6(r),i=t6(r);if(v=f.length,v>0?(s=lZ(f),u=uZ(f,i)):(s=1,u=[0]),o=dZ(e,s),o===null)throw new TypeError(yi("invalid argument. First argument must have a recognized data type. Value: `%s`.",e));return new cZ(e,o,f,u,fZ(f,u),i,t)}v6.exports=yZ});var n6=P(function(Wtr,o6){"use strict";var pZ=s6();o6.exports=pZ});var Rr=require("@stdlib/utils/define-read-only-property"),Nr={};Rr(Nr,"array",Au());Rr(Nr,"base",sg());Rr(Nr,"broadcastArray",yt());Rr(Nr,"ndarrayCastingModes",_i());Rr(Nr,"ndarray",ye());Rr(Nr,"ndarrayDataBuffer",Ue());Rr(Nr,"defaults",ge());Rr(Nr,"dispatch",qg());Rr(Nr,"ndarrayDataType",Oe());Rr(Nr,"ndarrayDataTypes",Kr());Rr(Nr,"ndempty",Eg());Rr(Nr,"ndemptyLike",Ng());Rr(Nr,"FancyArray",E4());Rr(Nr,"scalar2ndarray",Et());Rr(Nr,"ind2sub",P4());Rr(Nr,"ndarrayIndexModes",De());Rr(Nr,"iter",Jh());Rr(Nr,"maybeBroadcastArray",Hh());Rr(Nr,"ndarrayMinDataType",wt());Rr(Nr,"ndarrayMostlySafeCasts",Ii());Rr(Nr,"ndims",Ci());Rr(Nr,"ndarrayNextDataType",ib());Rr(Nr,"numel",nb());Rr(Nr,"ndarrayOffset",Fe());Rr(Nr,"ndarrayOrder",Te());Rr(Nr,"ndarrayOrders",Re());Rr(Nr,"ndarrayOutputDataTypePolicies",Ja());Rr(Nr,"ndarrayPromotionRules",pb());Rr(Nr,"ndarraySafeCasts",Ti());Rr(Nr,"ndarraySameKindCasts",ki());Rr(Nr,"ndarrayShape",Yr());Rr(Nr,"ndslice",gb());Rr(Nr,"ndsliceAssign",jb());Rr(Nr,"ndsliceDimension",Ib());Rr(Nr,"ndsliceDimensionFrom",Db());Rr(Nr,"ndsliceDimensionTo",Vb());Rr(Nr,"ndarrayStrides",ze());Rr(Nr,"sub2ind",Zb());Rr(Nr,"ndarray2array",Mt());Rr(Nr,"ndzeros",e6());Rr(Nr,"ndzerosLike",n6());module.exports=Nr; +"use strict";var P=function(r,a){return function(){return a||r((a={exports:{}}).exports,a),a.exports}};var Xt=P(function(kZ,Zt){"use strict";function c6(r){var a,e,i,v;for(a=r.length,e=[],v=0;v=0;v--)e[v]=i,i*=r[v];return e}function y6(r){var a,e,i;for(a=[],e=1,i=0;i=0;v--)a[v]=i,i*=r[v];return a}function x6(r,a){var e,i;for(e=1,i=0;iv&&(i=!1),i||a)v=t;else return 0;return i&&a?3:i?1:2}tv.exports=w6});var Ne=P(function(CZ,sv){"use strict";var j6=vv();sv.exports=j6});var nv=P(function(PZ,ov){"use strict";function E6(r){var a,e,i;if(a=r.length,a===0)return 0;for(e=1,i=0;i0?t+=o*(r[s]-1):o<0&&(v+=o*(r[s]-1))}return[v,t]}Dv.exports=X6});var Pv=P(function($Z,Cv){"use strict";function W6(r,a,e,i){var v,t,o,s,u;for(v=r.length,t=e,o=e,u=0;u0?o+=s*(r[u]-1):s<0&&(t+=s*(r[u]-1))}return i[0]=t,i[1]=o,i}Cv.exports=W6});var qe=P(function(rX,Vv){"use strict";var Q6=require("@stdlib/utils/define-nonenumerable-read-only-property"),Lv=zv(),H6=Pv();Q6(Lv,"assign",H6);Vv.exports=Lv});var Bv=P(function(eX,Mv){"use strict";var $6=qe();function r5(r,a,e,i){var v=$6(a,e,i);return v[0]>=0&&v[1]=0;o--)t=r%e[o],r-=t,r/=e[o],v+=t*a[o];return this._accessors?this._buffer.get(v):this._buffer[v]}ts.exports=c5});var os=P(function(cX,ss){"use strict";function y5(r,a){var e,i,v,t,o,s;if(v=this._ndims,v===0)return this._accessors?this._buffer.set(r,this._offset):this._buffer[this._offset]=r,this;if(this._flags.ROW_MAJOR_CONTIGUOUS||this._flags.COLUMN_MAJOR_CONTIGUOUS){if(this._iterationOrder===1)return this._accessors?this._buffer.set(a,this._offset+r):this._buffer[this._offset+r]=a,this;if(this._iterationOrder===-1)return this._accessors?this._buffer.set(a,this._offset-r):this._buffer[this._offset-r]=a,this}if(i=this._shape,e=this._strides,t=this._offset,this._order==="column-major"){for(s=0;s=0;s--)o=r%i[s],r-=o,r/=i[s],t+=o*e[s];return this._accessors?this._buffer.set(a,t):this._buffer[t]=a,this}ss.exports=y5});var us=P(function(yX,ns){"use strict";function p5(){var r,a;for(r=this._offset,a=0;a=0;o--)t=this.iget(this._length-1-o),r+=bi(t)+", "+Si(t),o>0&&(r+=", ");else for(o=2;o>=0;o--)r+=this.iget(this._length-1-o),o>0&&(r+=", ")}if(e=b5[this.dtype],i+=h5(e,"{{data}}",r),i+=", ",a===0?i+="[]":i+="[ "+this._shape.join(", ")+" ]",i+=", ",i+="[ ",a===0)i+="0";else for(o=0;oa?a:r}Ps.exports=mS});var wa=P(function(kX,Vs){"use strict";var xS=Ls();Vs.exports=xS});var Bs=P(function(AX,Ms){"use strict";function qS(r,a){var e=a+1;return r<0?(r+=e,r<0&&(r%=e,r!==0&&(r+=e)),r):(r>a&&(r-=e,r>a&&(r%=e)),r)}Ms.exports=qS});var ja=P(function(NX,Fs){"use strict";var gS=Bs();Fs.exports=gS});var Ys=P(function(RX,Us){"use strict";function hS(r,a){return r<0?(r+=a+1,r<0?-1:r):r>a?-1:r}Us.exports=hS});var ze=P(function(DX,Ks){"use strict";var bS=Ys();Ks.exports=bS});var Js=P(function(zX,Gs){"use strict";var SS=require("@stdlib/array/base/assert/contains").factory,wS=De(),jS=SS(wS());Gs.exports=jS});var Me=P(function(CX,Zs){"use strict";var ES=Js();Zs.exports=ES});var Ws=P(function(PX,Xs){"use strict";var _S=wa(),OS=ja(),TS=ze(),IS=Me(),Ei=require("@stdlib/string/format"),kS={wrap:OS,clamp:_S,normalize:NS,throw:AS};function AS(r,a){if(r<0||r>a)throw new RangeError(Ei("invalid argument. Index must resolve to a value on the interval: [0, %d]. Value: `%d`.",a,r));return r}function NS(r,a){var e=TS(r,a);if(e<0||e>a)throw new RangeError(Ei("invalid argument. Index must resolve to a value on the interval: [0, %d]. Value: `%d`.",a,r));return e}function RS(r){if(!IS(r))throw new TypeError(Ei("invalid argument. First argument must be a recognized index mode. Value: `%s`.",r));return kS[r]}Xs.exports=RS});var Hs=P(function(LX,Qs){"use strict";var DS=wa(),zS=ja(),CS=ze(),PS=require("@stdlib/string/format");function LS(r,a,e){var i;if(e==="clamp")return DS(r,a);if(e==="wrap")return zS(r,a);if(i=r,e==="normalize"&&(i=CS(i,a)),i<0||i>a)throw new RangeError(PS("invalid argument. Index must resolve to a value on the interval: [0, %d]. Value: `%d`.",a,r));return i}Qs.exports=LS});var Be=P(function(VX,ro){"use strict";var VS=require("@stdlib/utils/define-nonenumerable-read-only-property"),MS=Ws(),$s=Hs();VS($s,"factory",MS);ro.exports=$s});var io=P(function(MX,ao){"use strict";var BS=require("@stdlib/assert/is-integer").isPrimitive,FS=Be(),US=ie(),YS=require("@stdlib/string/format"),eo=US.prototype.iget;function KS(r){if(this._ndims>0){if(!BS(r))throw new TypeError(YS("invalid argument. Index must be an integer. Value: `%s`.",r));return r=FS(r,this._length-1,this._mode),eo.call(this,r)}return eo.call(this)}ao.exports=KS});var so=P(function(BX,vo){"use strict";var GS=require("@stdlib/assert/is-integer").isPrimitive,JS=Be(),ZS=ie(),XS=require("@stdlib/string/format"),to=ZS.prototype.iset;function WS(r,a){if(this._flags.READONLY)throw new Error("invalid invocation. Cannot write to a read-only array.");if(this._ndims>0){if(!GS(r))throw new TypeError(XS("invalid argument. Index must be an integer. Value: `%s`.",r));r=JS(r,this._length-1,this._mode),to.call(this,r,a)}else to.call(this,r);return this}vo.exports=WS});var uo=P(function(FX,no){"use strict";var QS=require("@stdlib/assert/is-integer").isPrimitive,HS=Be(),oo=require("@stdlib/string/format");function $S(){var r,a,e,i;if(arguments.length!==this._ndims)throw new RangeError(oo("invalid arguments. Number of indices must match the number of dimensions. ndims: `%u`. nargs: `%u`.",this._ndims,arguments.length));for(r=this._offset,e=this._submode.length,i=0;i0))throw new TypeError(le("invalid argument. Third argument must be an array-like object containing nonnegative integers. Value: `%s`.",e));if(s=e.length,s>So)throw new RangeError(le("invalid argument. Number of dimensions must not exceed %u due to stack limits. Value: `%u`.",So,s));if(!fw(i))throw new TypeError(le("invalid argument. Fourth argument must be an array-like object containing integers. Value: `%s`.",i));if(s>0){if(i.length!==s)throw new RangeError(le("invalid argument. Fourth argument length must match the number of dimensions. Expected number of dimensions: `%u`. Strides length: `%u`.",s,i.length))}else{if(i.length!==1)throw new RangeError("invalid argument. Fourth argument length must be equal to 1 when creating a zero-dimensional ndarray.");if(i[0]!==0)throw new RangeError(le("invalid argument. Fourth argument must contain a single element equal to 0. Value: `%d`.",i[0]))}if(!uw(v))throw new TypeError(le("invalid argument. Fifth argument must be a nonnegative integer. Value: `%s`.",v));if(!dw(t))throw new TypeError(le("invalid argument. Sixth argument must be a supported order. Value: `%s`.",t));if(s>0&&!cw(a.length,e,i,v)&&yw(e)>0)throw new Error("invalid arguments. Input buffer is incompatible with the specified meta data. Ensure that the offset is valid with regard to the strides array and that the buffer has enough elements to satisfy the desired array shape.");if(u={},u.mode=Sw,u.readonly=ww,arguments.length>6&&(f=bw(u,o),f))throw f;return this._mode=u.mode,u.submode===void 0&&(u.submode=[this._mode]),this._submode=u.submode,n=bo(e,s),d=bo(i,s||1),wo.call(this,r,a,n,d,v,t),this._flags.READONLY=u.readonly,this}mw(ce,wo);ia(ce,"name","ndarray");ia(ce.prototype,"get",gw);ia(ce.prototype,"iget",xw);ia(ce.prototype,"set",hw);ia(ce.prototype,"iset",qw);jo.exports=ce});var ye=P(function(JX,_o){"use strict";var jw=Eo();_o.exports=jw});var Oo=P(function(ZX,Ew){Ew.exports=["none","equiv","safe","mostly-safe","same-kind","unsafe"]});var Io=P(function(XX,To){"use strict";var _w=Oo();function Ow(){return _w.slice()}To.exports=Ow});var Ao=P(function(WX,ko){"use strict";function Tw(){return{none:0,equiv:1,safe:2,"mostly-safe":3,"same-kind":4,unsafe:5}}ko.exports=Tw});var Oi=P(function(QX,Ro){"use strict";var Iw=require("@stdlib/utils/define-nonenumerable-read-only-property"),No=Io(),kw=Ao();Iw(No,"enum",kw);Ro.exports=No});var Co=P(function(HX,zo){"use strict";var Aw=Oi(),Do=Aw(),Nw=Do.length;function Rw(r){var a;for(a=0;a0}Ho.exports=i8});var Ta=P(function(fW,rn){"use strict";var t8=$o();rn.exports=t8});var en=P(function(dW,v8){v8.exports={float64:{float64:1,float32:1,int32:0,int16:0,int8:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,binary:0,generic:1},float32:{float64:1,float32:1,int32:0,int16:0,int8:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,binary:0,generic:1},int32:{float64:1,float32:0,int32:1,int16:0,int8:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:0,binary:0,generic:1},int16:{float64:1,float32:1,int32:1,int16:1,int8:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,binary:0,generic:1},int8:{float64:1,float32:1,int32:1,int16:1,int8:1,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,binary:0,generic:1},uint32:{float64:1,float32:0,int32:0,int16:0,int8:0,uint32:1,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:0,binary:0,generic:1},uint16:{float64:1,float32:1,int32:1,int16:0,int8:0,uint32:1,uint16:1,uint8:0,uint8c:0,complex128:1,complex64:1,binary:0,generic:1},uint8:{float64:1,float32:1,int32:1,int16:1,int8:0,uint32:1,uint16:1,uint8:1,uint8c:1,complex128:1,complex64:1,binary:0,generic:1},uint8c:{float64:1,float32:1,int32:1,int16:1,int8:0,uint32:1,uint16:1,uint8:1,uint8c:1,complex128:1,complex64:1,binary:0,generic:1},complex128:{float64:0,float32:0,int32:0,int16:0,int8:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,binary:0,generic:1},complex64:{float64:0,float32:0,int32:0,int16:0,int8:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,binary:0,generic:1},generic:{float64:0,float32:0,int32:0,int16:0,int8:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:0,complex64:0,binary:0,generic:1},binary:{float64:0,float32:0,int32:0,int16:0,int8:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:0,complex64:0,binary:1,generic:0}}});var vn=P(function(lW,tn){"use strict";var an=require("@stdlib/utils/keys"),s8=require("@stdlib/assert/has-own-property"),o8=te(),ka=en(),Ia;function n8(){var r,a,e,i,v,t,o,s,u;for(e={},r=an(ka),a=r.length,u=0;u0}on.exports=y8});var Aa=P(function(pW,un){"use strict";var p8=nn();un.exports=p8});var fn=P(function(mW,m8){m8.exports={float64:{float64:1,float32:1,int32:0,int16:0,int8:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:0,binary:0,generic:1},float32:{float64:1,float32:1,int32:0,int16:0,int8:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,binary:0,generic:1},int32:{float64:1,float32:0,int32:1,int16:1,int8:1,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:0,binary:0,generic:1},int16:{float64:1,float32:1,int32:1,int16:1,int8:1,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,binary:0,generic:1},int8:{float64:1,float32:1,int32:1,int16:1,int8:1,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,binary:0,generic:1},uint32:{float64:1,float32:0,int32:0,int16:0,int8:0,uint32:1,uint16:1,uint8:1,uint8c:1,complex128:1,complex64:0,binary:0,generic:1},uint16:{float64:1,float32:1,int32:1,int16:0,int8:0,uint32:1,uint16:1,uint8:1,uint8c:1,complex128:1,complex64:1,binary:0,generic:1},uint8:{float64:1,float32:1,int32:1,int16:1,int8:0,uint32:1,uint16:1,uint8:1,uint8c:1,complex128:1,complex64:1,binary:0,generic:1},uint8c:{float64:1,float32:1,int32:1,int16:1,int8:0,uint32:1,uint16:1,uint8:1,uint8c:1,complex128:1,complex64:1,binary:0,generic:1},complex128:{float64:0,float32:0,int32:0,int16:0,int8:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,binary:0,generic:0},complex64:{float64:0,float32:0,int32:0,int16:0,int8:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:1,complex64:1,binary:0,generic:0},generic:{float64:0,float32:0,int32:0,int16:0,int8:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:0,complex64:0,binary:0,generic:1},binary:{float64:0,float32:0,int32:0,int16:0,int8:0,uint32:0,uint16:0,uint8:0,uint8c:0,complex128:0,complex64:0,binary:1,generic:0}}});var cn=P(function(xW,ln){"use strict";var dn=require("@stdlib/utils/keys"),x8=require("@stdlib/assert/has-own-property"),q8=te(),Ra=fn(),Na;function g8(){var r,a,e,i,v,t,o,s,u;for(e={},r=dn(Ra),a=r.length,u=0;u0}pn.exports=E8});var Ni=P(function(hW,xn){"use strict";var _8=mn();xn.exports=_8});var gn=P(function(bW,qn){"use strict";var O8=Ta(),T8=Aa(),I8=Ni();function k8(r,a,e){return e==="unsafe"||r===a?!0:e==="none"||e==="equiv"?!1:e==="safe"?O8(r,a):e==="mostly-safe"?T8(r,a):I8(r,a)}qn.exports=k8});var Ri=P(function(SW,hn){"use strict";var A8=gn();hn.exports=A8});var Sn=P(function(wW,bn){"use strict";var N8=require("@stdlib/buffer/ctor"),R8=require("@stdlib/array/float64"),D8=require("@stdlib/array/float32"),z8=require("@stdlib/array/int16"),C8=require("@stdlib/array/int32"),P8=require("@stdlib/array/int8"),L8=require("@stdlib/array/uint16"),V8=require("@stdlib/array/uint32"),M8=require("@stdlib/array/uint8"),B8=require("@stdlib/array/uint8c"),F8=require("@stdlib/array/complex64"),U8=require("@stdlib/array/complex128"),Y8={binary:N8,float64:R8,float32:D8,generic:Array,int16:z8,int32:C8,int8:P8,uint16:L8,uint32:V8,uint8:M8,uint8c:B8,complex64:F8,complex128:U8};bn.exports=Y8});var jn=P(function(jW,wn){"use strict";var K8=Sn();function G8(r){return K8[r]||null}wn.exports=G8});var va=P(function(EW,En){"use strict";var J8=jn();En.exports=J8});var On=P(function(_W,_n){"use strict";function Z8(r){var a;for(a=0;a=0&&r.length=H7(a)}Cu.exports=$7});var Vu=P(function(iQ,Lu){"use strict";var rE=Pu();Lu.exports=rE});var Fu=P(function(tQ,Bu){"use strict";var Mu=require("@stdlib/math/base/special/abs");function eE(r){var a,e,i,v;if(a=r.length,a===0)return!1;for(e=Mu(r[0]),v=1;ve)return!1;e=i}return!0}jf.exports=FE});var Fi=P(function(OQ,_f){"use strict";var UE=Ef();_f.exports=UE});var Tf=P(function(TQ,Of){"use strict";var YE=sa(),KE=de(),GE=Fi();function JE(r,a,e){return KE(a)!==0&&GE(a)&&YE(r,a,e)}Of.exports=JE});var kf=P(function(IQ,If){"use strict";var ZE=Tf();If.exports=ZE});var Nf=P(function(kQ,Af){"use strict";var XE=require("@stdlib/array/base/assert/contains").factory,WE=Kr(),QE=XE(WE("signed_integer"));Af.exports=QE});var Ma=P(function(AQ,Rf){"use strict";var HE=Nf();Rf.exports=HE});var zf=P(function(NQ,Df){"use strict";var $E=require("@stdlib/array/base/assert/contains").factory,r_=Kr(),e_=$E(r_("unsigned_integer"));Df.exports=e_});var Ba=P(function(RQ,Cf){"use strict";var a_=zf();Cf.exports=a_});var Lf=P(function(DQ,Pf){"use strict";var Lr=require("@stdlib/utils/define-read-only-property"),Pr={};Lr(Pr,"isAllowedDataTypeCast",Ri());Lr(Pr,"isBufferLengthCompatible",hi());Lr(Pr,"isBufferLengthCompatibleShape",Vu());Lr(Pr,"isCastingMode",Ti());Lr(Pr,"isColumnMajor",Li());Lr(Pr,"isColumnMajorContiguous",Wu());Lr(Pr,"isComplexFloatingPointDataType",oa());Lr(Pr,"isContiguous",tf());Lr(Pr,"isDataType",Ve());Lr(Pr,"isFloatingPointDataType",La());Lr(Pr,"isIndexMode",Me());Lr(Pr,"isIntegerDataType",Vi());Lr(Pr,"isMostlySafeDataTypeCast",Aa());Lr(Pr,"isNumericDataType",Mi());Lr(Pr,"isOrder",ee());Lr(Pr,"isReadOnly",re());Lr(Pr,"isRealDataType",Va());Lr(Pr,"isRealFloatingPointDataType",Bi());Lr(Pr,"isRowMajor",Fi());Lr(Pr,"isRowMajorContiguous",kf());Lr(Pr,"isSafeDataTypeCast",Ta());Lr(Pr,"isSameKindDataTypeCast",Ni());Lr(Pr,"isSignedIntegerDataType",Ma());Lr(Pr,"isSingleSegmentCompatible",sa());Lr(Pr,"isUnsignedIntegerDataType",Ba());Pf.exports=Pr});var Mf=P(function(zQ,Vf){"use strict";function i_(r){return r.dtype}Vf.exports=i_});var Xr=P(function(CQ,Bf){"use strict";var t_=Mf();Bf.exports=t_});var Uf=P(function(PQ,Ff){"use strict";var v_=require("@stdlib/array/base/copy-indexed");function s_(r,a){var e=r.shape;return a?v_(e):e}Ff.exports=s_});var Jr=P(function(LQ,Yf){"use strict";var o_=Uf();Yf.exports=o_});var Gf=P(function(VQ,Kf){"use strict";var n_=Gr(),u_=require("@stdlib/array/base/copy-indexed"),f_="row-major";function d_(r,a){var e,i,v;return v=r.strides,typeof v!="object"||v===null?(i=r.shape,i.length===0?[0]:(e=r.order,typeof e!="string"&&(e=f_),n_(i,e))):a?u_(v):v}Kf.exports=d_});var ne=P(function(MQ,Jf){"use strict";var l_=Gf();Jf.exports=l_});var Xf=P(function(BQ,Zf){"use strict";var c_=Zr();function y_(r){var a,e,i;return i=r.offset,typeof i=="number"?i:(e=r.shape,e.length===0||(a=r.strides,typeof a!="object"||a===null)?0:c_(e,a))}Zf.exports=y_});var pe=P(function(FQ,Wf){"use strict";var p_=Xf();Wf.exports=p_});var Hf=P(function(UQ,Qf){"use strict";var m_=Ne(),Ui="row-major",x_="column-major";function q_(r){var a,e;return e=r.order,typeof e=="string"?e:(a=r.strides,typeof a!="object"||a===null||(e=m_(a),e===1||e===3)?Ui:e===2?x_:r.shape.length===0?Ui:null)}Qf.exports=q_});var Wr=P(function(YQ,$f){"use strict";var g_=Hf();$f.exports=g_});var ed=P(function(KQ,rd){"use strict";function h_(r){return r.data}rd.exports=h_});var he=P(function(GQ,ad){"use strict";var b_=ed();ad.exports=b_});var td=P(function(JQ,id){"use strict";var S_=require("@stdlib/array/base/assert/is-accessor-array"),w_=require("@stdlib/array/base/accessor-getter"),j_=require("@stdlib/array/base/accessor-setter"),E_=require("@stdlib/array/base/getter"),__=require("@stdlib/array/base/setter"),O_=zr(),T_=Xr(),I_=Jr(),k_=ne(),A_=pe(),N_=Wr(),R_=he();function D_(r){var a,e,i,v;return a=R_(r),i=I_(r,!0),v=T_(r),e=S_(a),{ref:r,dtype:v,data:a,length:O_(i),shape:i,strides:k_(r,!0),offset:A_(r),order:N_(r),accessorProtocol:e,accessors:e?[w_(v),j_(v)]:[E_(v),__(v)]}}id.exports=D_});var Ke=P(function(ZQ,vd){"use strict";var z_=td();vd.exports=z_});var od=P(function(XQ,sd){"use strict";function C_(r,a){var e,i,v,t,o,s,u,f,n,d;for(v=1,t=1,d=1;d=0&&(n=r[o],i=n<0?-n:n,!(i<=e));)r[o+1]=n,a[s+1]=a[s],o-=1,s-=1;r[o+1]=u,a[s+1]=f,v+=1,t+=1}}sd.exports=C_});var fd=P(function(WQ,ud){"use strict";var P_=require("@stdlib/array/base/zero-to"),L_=require("@stdlib/array/base/copy-indexed"),nd=require("@stdlib/array/base/take-indexed"),V_=od();function M_(r,a,e){var i;return i=P_(r.length),a=L_(a),V_(a,i),r=nd(r,i),e=nd(e,i),{sh:r,sx:a,sy:e}}ud.exports=M_});var Ir=P(function(QQ,dd){"use strict";var B_=fd();dd.exports=B_});var cd=P(function(HQ,ld){"use strict";var F_={BLOCK_SIZE_IN_BYTES:64,BLOCK_SIZE_IN_ELEMENTS:8};ld.exports=F_});var md=P(function($Q,pd){"use strict";var yd=je(),Yi=cd();function U_(r,a){var e,i;return e=yd(r),i=yd(a),e===null||i===null?Yi.BLOCK_SIZE_IN_ELEMENTS:e>i?Yi.BLOCK_SIZE_IN_BYTES/e|0:Yi.BLOCK_SIZE_IN_BYTES/i|0}pd.exports=U_});var kr=P(function(rH,xd){"use strict";var Y_=md();xd.exports=Y_});var gd=P(function(eH,qd){"use strict";var K_=Ir(),G_=kr();function J_(r,a){var e,i,v,t,o,s,u,f,n,d,x,b,p,l,h,m,E,T,q,w,j,c,g,y,S;for(S=K_(r.shape,r.strides,a.strides),b=S.sh,h=S.sx,m=S.sy,e=G_(r.dtype,a.dtype),E=r.offset,T=a.offset,i=r.data,v=a.data,s=h[0],f=m[0],t=r.accessors[0],o=a.accessors[1],y=b[1];y>0;)for(y0;)for(g0;)for(I0;)for(R0;)for(N0;)for(M0;)for(V0;)for(L0;)for(C0;)for(J0;)for(Y0;)for(G0;)for(K0;)for(U0;)for(er0;)for(H0;)for($0;)for(X0;)for(Q0;)for(W0;)for(or0;)for(sr0;)for(vr0;)for(ar0;)for(tr0;)for(rr0;)for(ir0;)for(yr0;)for(lr0;)for(cr0;)for(fr0;)for(dr0;)for(ur0;)for(nr0;)for(or0;)for(br0;)for(mr0;)for(gr0;)for(qr0;)for(hr0;)for(xr0;)for(pr0;)for(yr0;)for(lr0;)for(Dr0;)for(Ar0;)for(Tr0;)for(Or0;)for(_r0;)for(Er0;)for(wr0;)for(br0;)for(mr0;)for(gr0;)for(c0;)for(j0;)for(N0;)for(O0;)for(A0;)for(L0;)for(C0;)for(k0;)for(z0;)for(G0;)for(K0;)for(U0;)for(F0;)for(B0;)for($0;)for(X0;)for(Q0;)for(W0;)for(Z0;)for(J0;)for(vr0;)for(ar0;)for(tr0;)for(rr0;)for(ir0;)for(er0;)for(H0;)for(cr0;)for(fr0;)for(dr0;)for(ur0;)for(nr0;)for(or0;)for(sr0;)for(vr0;)for(gr0;)for(qr0;)for(hr0;)for(xr0;)for(pr0;)for(yr0;)for(lr0;)for(cr0;)for(fr0;)for(Tr0;)for(Or0;)for(_r0;)for(Er0;)for(wr0;)for(br0;)for(mr0;)for(gr0;)for(qr0;)for(hr=s&&(v=s-1);else if(t==="wrap")v<0?(v+=s,v<0&&(v%=s,v!==0&&(v+=s))):v>=s&&(v-=s,v>=s&&(v%=s));else if(t==="normalize"&&v<0&&(v+=s),v<0||v>=s)throw new RangeError(aT("invalid argument. Linear index must not exceed array dimensions. Number of array elements: `%u`. Value: `%d`.",s,v));if(u=e,i==="column-major"){for(n=0;n=0;n--)f=v%r[n],v-=f,v/=r[n],u+=f*a[n];return u}S0.exports=iT});var me=P(function(AH,j0){"use strict";var tT=w0();j0.exports=tT});var T0=P(function(NH,O0){"use strict";var vT=zr(),E0=me(),_0="throw";function sT(r,a){var e,i,v,t,o,s,u,f,n,d,x,b,p,l,h;for(f=r.shape,o=vT(f),e=r.data,i=a.data,n=r.strides,d=a.strides,x=r.offset,b=a.offset,v=r.order,t=a.order,s=r.accessors[0],u=a.accessors[1],h=0;h=0&&(n=r[o],i=n<0?-n:n,!(i<=e));)r[o+1]=n,a[s+1]=a[s],o-=1,s-=1;r[o+1]=u,a[s+1]=f,v+=1,t+=1}}nl.exports=mI});var ll=P(function(ZH,dl){"use strict";var xI=require("@stdlib/array/base/zero-to"),qI=require("@stdlib/array/base/copy-indexed"),Fa=require("@stdlib/array/base/take-indexed"),gI=require("@stdlib/array/base/filled"),Gi=Ne(),hI=ul(),fl=3;function bI(r,a,e,i){var v,t,o,s,u,f,n,d,x,b;if(v=xI(r.length),f=Gi(a),n=Gi(e),d=Gi(i),t=gI([],4),t[f].push(a),t[n].push(e),t[d].push(i),o=t[0].length,o===fl)u=a;else if(o===fl-1){for(x=1;x<4;x++)if(t[x].length){u=t[x][0];break}}else{for(b=0,x=1;x<4;x++)s=t[x].length,s>=o&&(o=s,b=x);u=t[b][0]}return u=qI(u),hI(u,v),r=Fa(r,v),a=a===u?u:Fa(a,v),e=e===u?u:Fa(e,v),i=i===u?u:Fa(i,v),{sh:r,sx:a,sy:e,sz:i}}dl.exports=bI});var yl=P(function(XH,cl){"use strict";var SI=ll();cl.exports=SI});var ml=P(function(WH,pl){"use strict";var wI={BLOCK_SIZE_IN_BYTES:64,BLOCK_SIZE_IN_ELEMENTS:8};pl.exports=wI});var ql=P(function(QH,xl){"use strict";var Ji=je(),Ua=ml();function jI(r,a,e){var i,v,t;return i=Ji(r),v=Ji(a),t=Ji(e),i===null||v===null||t===null?Ua.BLOCK_SIZE_IN_ELEMENTS:i>v&&i>t?Ua.BLOCK_SIZE_IN_BYTES/i|0:v>t?Ua.BLOCK_SIZE_IN_BYTES/v|0:Ua.BLOCK_SIZE_IN_BYTES/t|0}xl.exports=jI});var hl=P(function(HH,gl){"use strict";var EI=ql();gl.exports=EI});var wl=P(function($H,Sl){"use strict";var _I=require("@stdlib/string/format"),Ya=require("@stdlib/math/base/special/trunc"),bl=require("@stdlib/math/base/special/abs");function OI(r,a,e,i,v,t){var o,s,u,f,n,d;for(o=r.length,s=1,d=0;d=s&&(v=s-1);else if(t==="wrap")v<0?(v+=s,v<0&&(v%=s,v!==0&&(v+=s))):v>=s&&(v-=s,v>=s&&(v%=s));else if(t==="normalize"&&v<0&&(v+=s),v<0||v>=s)throw new RangeError(_I("invalid argument. Linear index must not exceed array dimensions. Number of array elements: `%u`. Value: `%d`.",s,v));if(u=0,i==="column-major"){for(d=o-1;d>=0;d--)n=a[d],n<0?(f=Ya(v/n),v-=f*n,f+=r[d]-1):(f=Ya(v/n),v-=f*n),u+=f*bl(n);return u}for(d=0;d=0;f--)if(n=s-o+f,!(n<0)){if(u=v[n],i=a[f],i!==0&&if&&(f=a[n]);for(n=0;n=0;){for(t=a[0]-f+n,t>=0?i=v[t]:i=1,d=1;d=0?s=r[d][o]:s=1,i===1){i=s;continue}if(!(s===1||i===s))return null}e[n]=i,n-=1}return e}Dl.exports=JI});var Pl=P(function(s$,Cl){"use strict";var ZI=zl();Cl.exports=ZI});var Vl=P(function(o$,Ll){"use strict";var XI=ta(),WI=Da();function QI(r){var a=WI(r);return a?XI(a):null}Ll.exports=QI});var Bl=P(function(n$,Ml){"use strict";var HI=Vl();Ml.exports=HI});var Ul=P(function(u$,Fl){"use strict";function $I(){return{binary:"r",bool:"x",complex64:"c",complex128:"z",float16:"h",bfloat16:"e",float32:"f",float64:"d",float128:"g",generic:"o",int8:"s",int16:"k",int32:"i",int64:"l",int128:"m",int256:"n",uint8:"b",uint8c:"a",uint16:"t",uint32:"u",uint64:"v",uint128:"w",uint256:"y"}}Fl.exports=$I});var Gl=P(function(f$,Kl){"use strict";var rk=te(),Yl=Ul(),Zi;function ek(r){return arguments.length===0?Yl():(Zi===void 0&&(Zi=Yl()),Zi[rk(r)]||null)}Kl.exports=ek});var Xi=P(function(d$,Jl){"use strict";var ak=Gl();Jl.exports=ak});var Ql=P(function(l$,Wl){"use strict";var Zl=require("@stdlib/utils/object-inverse"),Xl=Xi(),Wi;function ik(r){return arguments.length===0?Zl(Xl()):(Wi===void 0&&(Wi=Zl(Xl())),Wi[r]||null)}Wl.exports=ik});var $l=P(function(c$,Hl){"use strict";var tk=Ql();Hl.exports=tk});var ec=P(function(y$,rc){"use strict";function vk(){return{binary:"byte",bool:"boolean",complex64:"single-precision floating-point complex number",complex128:"double-precision floating-point complex number",float16:"half-precision floating-point number",bfloat16:"brain floating-point number",float32:"single-precision floating-point number",float64:"double-precision floating-point number",float128:"quadruple-precision floating-point number",generic:"generic array value",int8:"signed 8-bit integer",int16:"signed 16-bit integer",int32:"signed 32-bit integer",int64:"signed 64-bit integer",int128:"signed 128-bit integer",int256:"signed 256-bit integer",uint8:"unsigned 8-bit integer",uint8c:"unsigned 8-bit integer (clamped)",uint16:"unsigned 16-bit integer",uint32:"unsigned 32-bit integer",uint64:"unsigned 64-bit integer",uint128:"unsigned 128-bit integer",uint256:"unsigned 256-bit integer"}}rc.exports=vk});var tc=P(function(p$,ic){"use strict";var sk=te(),ac=ec(),Qi;function ok(r){return arguments.length===0?ac():(Qi===void 0&&(Qi=ac()),Qi[sk(r)]||null)}ic.exports=ok});var sc=P(function(m$,vc){"use strict";var nk=tc();vc.exports=nk});var nc=P(function(x$,oc){"use strict";var uk=Ea(),fk=ta();function dk(r){var a=typeof r;return a==="number"?uk(r)?r:null:a==="string"?fk(r):null}oc.exports=dk});var Hi=P(function(q$,uc){"use strict";var lk=nc();uc.exports=lk});var fc=P(function(g$,ck){ck.exports={binary:null,bool:"bool",complex64:"stdlib_complex64_t",complex128:"stdlib_complex128_t",float16:null,bfloat16:null,float32:"float",float64:"double",float128:null,generic:null,int8:"int8_t",int16:"int16_t",int32:"int32_t",int64:"int64_t",int128:null,int256:null,uint8:"uint8_t",uint8c:null,uint16:"uint16_t",uint32:"uint32_t",uint64:"uint64_t",uint128:null,uint256:null}});var lc=P(function(h$,dc){"use strict";var yk=te(),pk=fc();function mk(r){return pk[yk(r)]||null}dc.exports=mk});var yc=P(function(b$,cc){"use strict";var xk=lc();cc.exports=xk});var xc=P(function(S$,mc){"use strict";var qk=require("@stdlib/assert/is-array-like-object"),pc=require("@stdlib/assert/is-nonnegative-integer").isPrimitive,gk=te(),$i=require("@stdlib/string/format");function hk(r,a,e){var i,v,t,o,s,u,f,n;if(!qk(r))throw new TypeError($i("invalid argument. First argument must be an array-like object. Value: `%s`.",r));if(!pc(a))throw new TypeError($i("invalid argument. Second argument must be a nonnegative integer. Value: `%s`.",a));if(!pc(e))throw new TypeError($i("invalid argument. Third argument must be a nonnegative integer. Value: `%s`.",e));if(i=r.length,i===0)throw new RangeError("invalid argument. First argument must contain at least one element.");if(s=a+e,i%s!==0)throw new RangeError("invalid arguments. Length of the first argument is incompatible with the second and third arguments.");for(v=[],t=[],u=2*s,n=2*a,f=0;f<=u;f++)f===0?f===n?t.push("() => ("):t.push("("):f===u?f===n?t.push(") => ()"):t.push(")"):f===n?t.push(") => ("):f%2===1?t.push(""):t.push(", ");for(f=0;f0?(t=Ek(a),o=Sk(a,e)):(t=1,o=[0]),r==="binary"?v=Ok(t):v=_k(t,r),new jk(r,v,a,o,wk(a,o),e)}gc.exports=Tk});var Sc=P(function(E$,bc){"use strict";var Ik=hc();bc.exports=Ik});var jc=P(function(_$,wc){"use strict";var kk=Gr(),Ak=Zr(),Nk=zr(),Rk=Xr(),Dk=Jr(),zk=Wr(),Ck=require("@stdlib/array/empty"),Pk=require("@stdlib/buffer/alloc-unsafe");function Lk(r){var a,e,i,v,t,o,s;return s=Rk(r),t=Dk(r,!0),v=zk(r),a=t.length,a>0?(e=Nk(t),o=kk(t,v)):(e=1,o=[0]),s==="binary"?i=Pk(e):i=Ck(e,s),new r.constructor(s,i,t,o,Ak(t,o),v)}wc.exports=Lk});var _c=P(function(O$,Ec){"use strict";var Vk=jc();Ec.exports=Vk});var Nc=P(function(T$,Ac){"use strict";var Mk=re(),Oc=Xr(),Bk=Jr(),Fk=ne(),Tc=pe(),Uk=Wr(),Ic=he(),kc=require("@stdlib/string/format");function Yk(r,a){var e,i,v,t,o,s,u;if(t=Bk(r,!1),o=Fk(r,!1),v=Uk(r),s=t.length,e=[],i=[],a<0){if(a<-s-1)throw new RangeError(kc("invalid argument. Specified axis is out-of-bounds. Must be on the interval: [-%u-1, %u]. Value: `%d`.",s,s,a));a+=s+1}else if(a>s)throw new RangeError(kc("invalid argument. Specified axis is out-of-bounds. Must be on the interval: [-%u-1, %u]. Value: `%d`.",s,s,a));if(a===0)for(i.push(1),e.push(o[0]),u=0;u0&&(x=Hk(x.length))}else x=Fc(b);return Uc(x)===0?sA(d,o,et(x,f),u,!i):(t=tA(b,v,t),x=et(x,f),x.length===0?new d(o,at(r),[],[0],t,u,{readonly:!i}):(v=vA(b,v,f),new d(o,at(r),x,v,t,u,{readonly:!i})))}Kc.exports=oA});var Mr=P(function(D$,Jc){"use strict";var nA=Gc();Jc.exports=nA});var Xc=P(function(z$,Zc){"use strict";function uA(r){var a=r.ndims;return typeof a=="number"?a:r.shape.length}Zc.exports=uA});var be=P(function(C$,Wc){"use strict";var fA=Xc();Wc.exports=fA});var Hc=P(function(P$,Qc){"use strict";var dA=require("@stdlib/slice/base/args2multislice"),lA=require("@stdlib/slice/ctor"),cA=Mr(),yA=require("@stdlib/array/base/filled"),pA=be(),it=require("@stdlib/string/format");function mA(r,a,e){var i,v,t;if(v=pA(r),v===0)throw new TypeError(it("invalid argument. First argument must be an ndarray having one or more dimensions. Number of dimensions: %d.",v));if(t=a,t<0){if(t+=v,t<0)throw new RangeError(it("invalid argument. Dimension index exceeds the number of dimensions. Number of dimensions: %d. Value: `%d`.",v,a))}else if(t>=v)throw new RangeError(it("invalid argument. Dimension index exceeds the number of dimensions. Number of dimensions: %d. Value: `%d`.",v,a));return i=yA(null,v),i[t]=new lA(null,null,-1),cA(r,dA(i),!0,e)}Qc.exports=mA});var Ga=P(function(L$,$c){"use strict";var xA=Hc();$c.exports=xA});var e1=P(function(V$,r1){"use strict";var qA=require("@stdlib/slice/multi"),gA=Ga(),hA=Mr(),bA=be();function SA(r,a){return bA(r)===0?hA(r,new qA,!0,a):gA(r,-1,a)}r1.exports=SA});var i1=P(function(M$,a1){"use strict";var wA=e1();a1.exports=wA});var o1=P(function(B$,s1){"use strict";var t1=require("@stdlib/slice/multi"),jA=Ga(),v1=Mr(),EA=be();function _A(r,a){var e=EA(r);return e===0?v1(r,new t1,!0,a):e===1?v1(r,new t1(null),!0,a):jA(r,-2,a)}s1.exports=_A});var u1=P(function(F$,n1){"use strict";var OA=o1();n1.exports=OA});var d1=P(function(U$,f1){"use strict";var TA=require("@stdlib/array/base/assert/is-accessor-array"),IA=require("@stdlib/array/base/accessor-setter"),kA=require("@stdlib/array/base/setter"),AA=ve(),NA=ie(),RA=require("@stdlib/string/format");function DA(r,a,e){var i,v;if(i=AA(a,1),i===null)throw new TypeError(RA("invalid argument. Second argument must be a recognized data type. Value: `%s`.",a));return/^complex/.test(a)&&typeof r=="number"&&(r=[r,0]),TA(i)?v=IA(a):v=kA(a),v(i,0,r),new NA(a,i,[],[0],0,e)}f1.exports=DA});var c1=P(function(Y$,l1){"use strict";var zA=d1();l1.exports=zA});var tt=P(function(K$,y1){"use strict";var CA=require("@stdlib/string/format"),Ja=require("@stdlib/math/base/special/trunc");function PA(r,a,e,i,v,t,o){var s,u,f,n,d;for(s=r.length,u=1,d=0;d=u&&(v=u-1);else if(t==="wrap")v<0?(v+=u,v<0&&(v%=u,v!==0&&(v+=u))):v>=u&&(v-=u,v>=u&&(v%=u));else if(t==="normalize"&&v<0&&(v+=u),v<0||v>=u)throw new RangeError(CA("invalid argument. Linear index must not exceed array dimensions. Number of array elements: `%u`. Value: `%d`.",u,v));if(e===0){if(i==="column-major"){for(d=0;d=0;d--)n=v%r[d],v-=n,v/=r[d],o[d]=n;return o}if(i==="column-major"){for(d=s-1;d>=0;d--)n=a[d],n<0?(f=Ja(v/n),v-=f*n,o[d]=r[d]-1+f):(f=Ja(v/n),v-=f*n,o[d]=f);return o}for(d=0;d0&&(v+=a[t]*(r[t]-1))}return v}g1.exports=UA});var S1=P(function(X$,b1){"use strict";var YA=h1();b1.exports=YA});var E1=P(function(W$,j1){"use strict";var w1=Ka(),KA=Jr();function GA(r,a){var e,i,v;if(i=a.length,e=KA(r,!1),e.length===i){for(v=0;vi;t--)v[t]=e[t];for(t=i;t>=0&&(o=(e[t]+1)%a[t],v[t]=o,!(o>0));t--);for(t-=1;t>=0;t--)v[t]=e[t];return v}function aN(r,a,e,i,v){var t,o;for(t=0;t0));t++);for(t+=1;t=t)return null;return a===rN?eN(t,r,e,i,v):aN(t,r,e,i,v)}C1.exports=iN});var L1=P(function(irr,P1){"use strict";var tN=require("@stdlib/array/base/zeros"),vN=st();function sN(r,a,e,i){return vN(r,a,e,i,tN(r.length))}P1.exports=sN});var ue=P(function(trr,M1){"use strict";var oN=require("@stdlib/utils/define-nonenumerable-read-only-property"),V1=L1(),nN=st();oN(V1,"assign",nN);M1.exports=V1});var F1=P(function(vrr,B1){"use strict";function uN(r){var a,e;for(a=0,e=0;e=0&&(n=r[o],i=n<0?-n:n,!(i<=e));)r[o+1]=n,a[s+1]=a[s],o-=1,s-=1;r[o+1]=u,a[s+1]=f,v+=1,t+=1}}K1.exports=dN});var Z1=P(function(nrr,J1){"use strict";var lN=require("@stdlib/array/base/zero-to"),cN=require("@stdlib/array/base/copy-indexed"),yN=require("@stdlib/array/base/take-indexed"),pN=G1();function mN(r,a){var e;return e=lN(r.length),a=cN(a),pN(a,e),r=yN(r,e),{sh:r,sx:a}}J1.exports=mN});var Br=P(function(urr,X1){"use strict";var xN=Z1();X1.exports=xN});var Q1=P(function(frr,W1){"use strict";var qN={BLOCK_SIZE_IN_BYTES:64,BLOCK_SIZE_IN_ELEMENTS:8};W1.exports=qN});var ry=P(function(drr,$1){"use strict";var gN=je(),H1=Q1();function hN(r){var a=gN(r);return a===null?H1.BLOCK_SIZE_IN_ELEMENTS:H1.BLOCK_SIZE_IN_BYTES/a|0}$1.exports=hN});var Fr=P(function(lrr,ey){"use strict";var bN=ry();ey.exports=bN});var iy=P(function(crr,ay){"use strict";var SN=Br(),wN=Fr();function jN(r,a){var e,i,v,t,o,s,u,f,n,d,x,b,p,l,h,m,E;for(E=SN(r.shape,r.strides),u=E.sh,d=E.sx,e=wN(r.dtype),x=r.offset,i=r.data,t=d[0],v=r.accessors[1],m=u[1];m>0;)for(m0;)for(h0;)for(j0;)for(w0;)for(q0;)for(_0;)for(S0;)for(y0;)for(g0;)for(I0;)for(R0;)for(N0;)for(O0;)for(A0;)for(L0;)for(C0;)for(k0;)for(z0;)for(D0;)for(I0;)for(U0;)for(F0;)for(B0;)for(M0;)for(V0;)for(L0;)for(C0;)for(Z0;)for(J0;)for(Y0;)for(G0;)for(K0;)for(U0;)for(F0;)for(B0;)for(H0;)for($0;)for(X0;)for(Q0;)for(W0;)for(Z0;)for(J0;)for(Y0;)for(G0;)for(ar0;)for(tr0;)for(rr0;)for(ir0;)for(er0;)for(H0;)for($0;)for(X0;)for(Q0;)for(W0;)for(h0;)for(l0;)for(w0;)for(q0;)for(T0;)for(S0;)for(y0;)for(g0;)for(c0;)for(R0;)for(N0;)for(O0;)for(A0;)for(_0;)for(C0;)for(k0;)for(z0;)for(D0;)for(I0;)for(R0;)for(F0;)for(B0;)for(M0;)for(V0;)for(L0;)for(C0;)for(k0;)for(J0;)for(Y0;)for(G0;)for(K0;)for(U0;)for(F0;)for(B0;)for(M0;)for($0;)for(X0;)for(Q0;)for(W0;)for(Z0;)for(J0;)for(Y0;)for(G0;)for(K0;)for(tr0;)for(rr0;)for(ir0;)for(er0;)for(H0;)for($0;)for(X0;)for(Q0;)for(W0;)for(Z=u&&(n=u-1);else if(o==="wrap")n<0?(n+=u,n<0&&(n%=u,n!==0&&(n+=u))):n>=u&&(n-=u,n>=u&&(n%=u));else if(o==="normalize"&&n<0&&(n+=u),n<0||n>=u)throw new RangeError(vC("invalid argument. Subscripts must not exceed array dimensions. Subscript: `%u`. Value: `%d`.",d,n));f=r[d],f<0&&a===0?s-=n*f:s+=n*f}return s}nm.exports=sC});var ct=P(function(Mer,fm){"use strict";var oC=um();fm.exports=oC});var cm=P(function(Ber,lm){"use strict";function dm(r,a,e,i,v,t){var o,s,u,f,n;if(t>=a.length)return r.accessors[0](r.data,i);for(u=[],f=a[t],o=e[t],n=0;n0;)for(S0;)for(y0;)for(D0;)for(I0;)for(R0;)for(B0;)for(M0;)for(V0;)for(L0;)for(Z0;)for(J0;)for(Y0;)for(G0;)for(K0;)for(ir0;)for(er0;)for(H0;)for($0;)for(X0;)for(Q0;)for(nr0;)for(or0;)for(sr0;)for(vr0;)for(ar0;)for(tr0;)for(rr0;)for(pr0;)for(yr0;)for(lr0;)for(cr0;)for(fr0;)for(dr0;)for(ur0;)for(nr0;)for(wr0;)for(br0;)for(mr0;)for(gr0;)for(qr0;)for(hr0;)for(xr0;)for(pr0;)for(yr0;)for(Cr0;)for(Dr0;)for(Ar0;)for(Tr0;)for(Or0;)for(_r0;)for(Er0;)for(wr0;)for(br0;)for(mr0;)for(g0;)for(c0;)for(R0;)for(N0;)for(O0;)for(V0;)for(L0;)for(C0;)for(k0;)for(Y0;)for(G0;)for(K0;)for(U0;)for(F0;)for(H0;)for($0;)for(X0;)for(Q0;)for(W0;)for(Z0;)for(sr0;)for(vr0;)for(ar0;)for(tr0;)for(rr0;)for(ir0;)for(er0;)for(lr0;)for(cr0;)for(fr0;)for(dr0;)for(ur0;)for(nr0;)for(or0;)for(sr0;)for(mr0;)for(gr0;)for(qr0;)for(hr0;)for(xr0;)for(pr0;)for(yr0;)for(lr0;)for(cr0;)for(Ar0;)for(Tr0;)for(Or0;)for(_r0;)for(Er0;)for(wr0;)for(br0;)for(mr0;)for(gr0;)for(qr0;)for(A0;)for(_0;)for(k0;)for(z0;)for(D0;)for(U0;)for(F0;)for(B0;)for(M0;)for(Q0;)for(W0;)for(Z0;)for(J0;)for(Y0;)for(tr0;)for(rr0;)for(ir0;)for(er0;)for(H0;)for($0;)for(dr0;)for(ur0;)for(nr0;)for(or0;)for(sr0;)for(vr0;)for(ar0;)for(hr0;)for(xr0;)for(pr0;)for(yr0;)for(lr0;)for(cr0;)for(fr0;)for(dr0;)for(_r0;)for(Er0;)for(wr0;)for(br0;)for(mr0;)for(gr0;)for(qr0;)for(hr0;)for(xr0;)for(Qr0;)for(Ur0;)for(Cr0;)for(Dr0;)for(Ar0;)for(Tr0;)for(Or0;)for(_r0;)for(Er0;)for(wr0;)for(S0;)for(y0;)for(D0;)for(I0;)for(R0;)for(B0;)for(M0;)for(V0;)for(L0;)for(Z0;)for(J0;)for(Y0;)for(G0;)for(K0;)for(ir0;)for(er0;)for(H0;)for($0;)for(X0;)for(Q0;)for(nr0;)for(or0;)for(sr0;)for(vr0;)for(ar0;)for(tr0;)for(rr0;)for(pr0;)for(yr0;)for(lr0;)for(cr0;)for(fr0;)for(dr0;)for(ur0;)for(nr0;)for(wr0;)for(br0;)for(mr0;)for(gr0;)for(qr0;)for(hr0;)for(xr0;)for(pr0;)for(yr0;)for(Cr0;)for(Dr0;)for(Ar0;)for(Tr0;)for(Or0;)for(_r0;)for(Er0;)for(wr0;)for(br0;)for(mr0?(t=bB(a),o=mB(a,e)):(t=1,o=[0]),v=qB(r,t),v===null)throw new TypeError(gB("invalid argument. First argument must be a recognized data type. Value: `%s`.",r));return new hB(r,v,a,o,xB(a,o),e)}eg.exports=SB});var tg=P(function(kir,ig){"use strict";var wB=ag();ig.exports=wB});var sg=P(function(Air,vg){"use strict";var jB=Gr(),EB=Zr(),_B=ve(),OB=zr(),TB=Xr(),IB=Jr(),kB=Wr(),AB=require("@stdlib/string/format");function NB(r){var a,e,i,v,t,o,s;if(s=TB(r),t=IB(r,!0),v=kB(r),a=t.length,a>0?(e=OB(t),o=jB(t,v)):(e=1,o=[0]),i=_B(s,e),i===null)throw new TypeError(AB("invalid argument. First argument must have a recognized data type. Value: `%s`.",s));return new r.constructor(s,i,t,o,EB(t,o),v)}vg.exports=NB});var ng=P(function(Nir,og){"use strict";var RB=sg();og.exports=RB});var fg=P(function(Rir,ug){"use strict";var jr=require("@stdlib/utils/define-read-only-property"),Sr={};jr(Sr,"assert",Lf());jr(Sr,"assign",Ki());jr(Sr,"binaryLoopOrder",yl());jr(Sr,"binaryBlockSize",hl());jr(Sr,"bind2vind",El());jr(Sr,"broadcastArray",Ka());jr(Sr,"broadcastScalar",Rl());jr(Sr,"broadcastShapes",Pl());jr(Sr,"buffer",ve());jr(Sr,"bufferCtors",va());jr(Sr,"bufferDataType",Da());jr(Sr,"bufferDataTypeEnum",Bl());jr(Sr,"bytesPerElement",je());jr(Sr,"char2dtype",$l());jr(Sr,"clampIndex",wa());jr(Sr,"ndarray",ie());jr(Sr,"data",he());jr(Sr,"dtype",Xr());jr(Sr,"dtypeChar",Xi());jr(Sr,"dtypeDesc",sc());jr(Sr,"dtypeEnum2Str",Ea());jr(Sr,"dtypeResolveEnum",Hi());jr(Sr,"dtypeResolveStr",te());jr(Sr,"dtypeStr2Enum",ta());jr(Sr,"dtype2c",yc());jr(Sr,"dtypes2signatures",rt());jr(Sr,"empty",Sc());jr(Sr,"emptyLike",_c());jr(Sr,"expandDimensions",Dc());jr(Sr,"fliplr",i1());jr(Sr,"flipud",u1());jr(Sr,"scalar2ndarray",c1());jr(Sr,"ind",Be());jr(Sr,"ind2sub",Za());jr(Sr,"iterationOrder",de());jr(Sr,"maxViewBufferIndex",S1());jr(Sr,"maybeBroadcastArray",O1());jr(Sr,"metaDataProps",A1());jr(Sr,"minViewBufferIndex",z1());jr(Sr,"minmaxViewBufferIndex",qe());jr(Sr,"ndarraylike2object",Ke());jr(Sr,"ndims",be());jr(Sr,"nextCartesianIndex",ue());jr(Sr,"nonsingletonDimensions",Y1());jr(Sr,"normalizeIndex",ze());jr(Sr,"nullary",C2());jr(Sr,"nullaryLoopOrder",Br());jr(Sr,"nullaryBlockSize",Fr());jr(Sr,"numel",zr());jr(Sr,"offset",pe());jr(Sr,"order",Wr());jr(Sr,"outputPolicyEnum2Str",Wa());jr(Sr,"outputPolicyResolveEnum",ep());jr(Sr,"outputPolicyResolveStr",vp());jr(Sr,"outputPolicyStr2Enum",Qa());jr(Sr,"prependSingletonDimensions",cp());jr(Sr,"removeSingletonDimensions",bp());jr(Sr,"reverse",Ep());jr(Sr,"reverseDimension",Ga());jr(Sr,"serializeMetaData",Rp());jr(Sr,"shape",Jr());jr(Sr,"shape2strides",Gr());jr(Sr,"singletonDimensions",Pp());jr(Sr,"slice",Mr());jr(Sr,"sliceAssign",Ha());jr(Sr,"sliceDimension",ft());jr(Sr,"sliceDimensionFrom",dt());jr(Sr,"sliceDimensionTo",lt());jr(Sr,"sliceFrom",im());jr(Sr,"sliceTo",om());jr(Sr,"strides",ne());jr(Sr,"strides2offset",Zr());jr(Sr,"strides2order",Ne());jr(Sr,"sub2ind",ct());jr(Sr,"ndarray2array",yt());jr(Sr,"transpose",hm());jr(Sr,"unary",nx());jr(Sr,"unaryBy",Wq());jr(Sr,"unaryLoopOrder",Ir());jr(Sr,"unaryOutputDataType",rg());jr(Sr,"unaryBlockSize",kr());jr(Sr,"vind2bind",me());jr(Sr,"wrapIndex",ja());jr(Sr,"zeros",tg());jr(Sr,"zerosLike",ng());ug.exports=Sr});var lg=P(function(Dir,dg){"use strict";var DB=require("@stdlib/assert/is-ndarray-like"),zB=require("@stdlib/assert/is-collection"),CB=require("@stdlib/assert/is-nonnegative-integer").isPrimitive,pa=require("@stdlib/array/base/copy-indexed"),PB=Oe(),LB=Yr(),VB=Ce(),MB=Ue(),BB=Te(),FB=Ye(),ma=require("@stdlib/string/format");function UB(r,a){var e,i,v,t,o,s,u,f,n;if(!DB(r))throw new TypeError(ma("invalid argument. First argument must be an ndarray. Value: `%s`.",r));if(!zB(a))throw new TypeError(ma("invalid argument. Second argument must be an array of nonnegative integers. Value: `%s`.",a));if(o=a.length,v=LB(r),s=v.length,o=0;f--)if(n=s-o+f,!(n<0)){if(u=v[n],i=a[f],!CB(i))throw new TypeError(ma("invalid argument. Second argument must be an array of nonnegative integers. Value: `%s`.","["+a.join(",")+"]"));if(i!==0&&i1){if(a=arguments[1],!aF(a))throw new TypeError(mt("invalid argument. Options argument must be an object. Value: `%s`.",a));$a(a,"dtype")?e=a.dtype:e=wg,$a(a,"order")?i=a.order:i=jg,$a(a,"mode")&&(t.mode=a.mode),$a(a,"submode")&&(t.submode=a.submode)}else e=wg,i=jg;if(typeof r=="number")f=[r];else if(iF(r))f=r;else throw new TypeError(mt("invalid argument. First argument must be either a nonnegative integer or an array of nonnegative integers. Value: `%s`.",r));if(v=f.length,v>0){if(s=nF(f),s!==s||s<0)throw new TypeError(mt("invalid argument. First argument must be either a nonnegative integer or an array of nonnegative integers. Value: `%s`.",r));u=tF(f,i)}else s=1,u=[0];return e==="binary"?o=oF(s):o=sF(s,e),new uF(e,o,f,u,vF(f,u),i,t)}_g.exports=fF});var Ig=P(function(Mir,Tg){"use strict";var dF=Og();Tg.exports=dF});var Dg=P(function(Bir,Rg){"use strict";var lF=require("@stdlib/assert/is-ndarray-like"),cF=require("@stdlib/assert/is-plain-object"),yF=require("@stdlib/assert/is-nonnegative-integer-array").primitives,xa=require("@stdlib/assert/has-own-property"),pF=Gr(),mF=Zr(),xF=zr(),kg=Oe(),Ag=Yr(),Ng=Te(),qF=ye(),gF=require("@stdlib/array/empty"),hF=require("@stdlib/buffer/alloc-unsafe"),xt=require("@stdlib/string/format");function bF(r){var a,e,i,v,t,o,s,u,f;if(!lF(r))throw new TypeError(xt("invalid argument. First argument must be an ndarray-like object. Value: `%s`.",r));if(t={},arguments.length>1){if(a=arguments[1],!cF(a))throw new TypeError(xt("invalid argument. Options argument must be an object. Value: `%s`.",a));if(xa(a,"dtype")?e=a.dtype:e=kg(r),xa(a,"shape")){if(f=a.shape,typeof f=="number"&&(f=[f]),!yF(f))throw new TypeError(xt("invalid option. `%s` option must be a nonnegative integer or an array of nonnegative integers. Option: `%s`.","shape",f))}else f=Ag(r);xa(a,"order")?i=a.order:i=Ng(r),xa(a,"mode")&&(t.mode=a.mode),xa(a,"submode")&&(t.submode=a.submode)}else e=kg(r),f=Ag(r),i=Ng(r);return v=f.length,v>0?(s=xF(f),u=pF(f,i)):(s=1,u=[0]),e==="binary"?o=hF(s):o=gF(s,e),new qF(e,o,f,u,mF(f,u),i,t)}Rg.exports=bF});var Cg=P(function(Fir,zg){"use strict";var SF=Dg();zg.exports=SF});var qt=P(function(Uir,Pg){"use strict";var wF=/^-?[0-9]+$/;Pg.exports=wF});var gt=P(function(Yir,Lg){"use strict";var jF=/:/;Lg.exports=jF});var Mg=P(function(Kir,Vg){"use strict";var EF=require("@stdlib/string/base/trim"),_F=require("@stdlib/string/base/replace"),ht=require("@stdlib/slice/multi"),OF=require("@stdlib/slice/base/str2multislice"),TF=require("@stdlib/slice/base/seq2multislice"),IF=require("@stdlib/slice/base/str2slice"),Pe=require("@stdlib/string/format"),kF=qt(),AF=gt();function NF(r,a){var e,i,v,t;if(i=EF(a),v=i[0],v==="S"){if(t=IF(a),t===null)throw new Error(Pe("invalid operation. Unsupported slice operation. Value: `%s`.",a));t=new ht(t)}else if(v==="M"){if(t=OF(i),t===null)throw new Error(Pe("invalid operation. Unsupported slice operation. Value: `%s`.",a))}else if(kF.test(i))t=parseInt(i,10),t=new ht(t);else if(AF.test(i)){if(e=r.shape,t=TF(i,e,!0),t.code)throw t.code==="ERR_SLICE_INVALID_INCREMENT"?new Error(Pe("invalid operation. A subsequence increment must be a non-zero integer. Value: `%s`.",a)):t.code==="ERR_SLICE_INVALID_ELLIPSIS"?new Error(Pe("invalid operation. A subsequence may only include a single ellipsis. Value: `%s`.",a)):t.code==="ERR_SLICE_INVALID_SUBSEQUENCE"?new Error(Pe("invalid operation. Unsupported slice operation. Value: `%s`.",a)):new RangeError(Pe("invalid operation. Number of slice dimensions does not match the number of array dimensions. Array shape: (%s). Slice dimensions: %u.",e.join(","),_F(i,/\.\.\.,/,"").split(",").length))}else if(i.length===0||i==="...")t=new ht;else throw new Error(Pe("invalid operation. Unsupported slice operation. Value: `%s`.",a));return t}Vg.exports=NF});var Yg=P(function(Gir,Ug){"use strict";var RF=require("@stdlib/string/base/trim"),DF=require("@stdlib/string/base/replace"),Bg=require("@stdlib/slice/multi"),zF=require("@stdlib/slice/base/str2multislice"),Fg=require("@stdlib/slice/base/seq2multislice"),CF=require("@stdlib/slice/base/str2slice"),Ae=require("@stdlib/string/format"),PF=qt();function LF(r,a,e){var i,v,t,o;if(v=RF(a),t=v[0],t==="S"){if(o=CF(a),o===null)throw new Error(Ae("invalid operation. Unsupported slice operation. Value: `%s`.",a));o=new Bg(o)}else if(t==="M"){if(o=zF(v),o===null)throw new Error(Ae("invalid operation. Unsupported slice operation. Value: `%s`.",a))}else if(PF.test(v))o=parseInt(v,10),o=new Bg(o);else if(v.length>0){if(i=r.shape,o=Fg(v,i,!0),o.code){if(o.code==="ERR_SLICE_INVALID_INCREMENT")throw new Error(Ae("invalid operation. A subsequence increment must be a non-zero integer. Value: `%s`.",a));if(o.code==="ERR_SLICE_INVALID_ELLIPSIS")throw new Error(Ae("invalid operation. A subsequence may only include a single ellipsis. Value: `%s`.",a));if(o.code==="ERR_SLICE_INVALID_SUBSEQUENCE")throw new Error(Ae("invalid operation. Unsupported slice operation. Value: `%s`.",a));if(o.code==="ERR_SLICE_TOO_MANY_DIMENSIONS")throw new RangeError(Ae("invalid operation. Number of slice dimensions does not match the number of array dimensions. Array shape: (%s). Slice dimensions: %u.",r.shape.join(","),DF(v,/\.\.\.,/,"").split(",").length));if(o.code==="ERR_SLICE_OUT_OF_BOUNDS"){if(e)throw new RangeError(Ae("invalid operation. Slice exceeds array bounds. Array shape: (%s).",i.join(",")));o=Fg(v,i,!1)}}}else throw new RangeError(Ae("invalid operation. Number of slice dimensions does not match the number of array dimensions. Array shape: (%s). Slice dimensions: %u.",r.shape.join(","),0));return o}Ug.exports=LF});var Jg=P(function(Jir,Gg){"use strict";var VF=require("@stdlib/string/base/trim"),MF=require("@stdlib/slice/base/str2multislice"),Kg=require("@stdlib/slice/base/seq2multislice"),BF=require("@stdlib/slice/base/sargs2multislice"),We=require("@stdlib/string/format"),FF=gt();function UF(r,a,e){var i,v,t,o;if(v=VF(a),t=v[0],t==="M"){if(o=MF(v),o===null)throw new Error(We("invalid operation. Unsupported slice operation. Value: `%s`.",a))}else if(FF.test(v)||v==="..."){if(i=r.shape,o=Kg(v,i,!0),o.code){if(o.code==="ERR_SLICE_INVALID_INCREMENT")throw new Error(We("invalid operation. A subsequence increment must be a non-zero integer. Value: `%s`.",a));if(o.code==="ERR_SLICE_INVALID_ELLIPSIS")throw new Error(We("invalid operation. A subsequence may only include a single ellipsis. Value: `%s`.",a));if(o.code==="ERR_SLICE_INVALID_SUBSEQUENCE")throw new Error(We("invalid operation. Unsupported slice operation. Value: `%s`.",a));if(o.code==="ERR_SLICE_OUT_OF_BOUNDS"){if(e)throw new RangeError(We("invalid operation. Slice exceeds array bounds. Array shape: (%s).",i.join(",")));o=Kg(v,i,!1)}}}else if(o=BF(v),o===null)throw new Error(We("invalid operation. Unsupported slice operation. Value: `%s`.",a));return o}Gg.exports=UF});var bt=P(function(Zir,Zg){"use strict";var YF=require("@stdlib/utils/properties-in"),KF=require("@stdlib/array/base/assert/contains").factory,GF=ye(),JF=ge(),ZF=KF(YF(new GF("generic",[0],[],[0],0,JF.get("order"))));Zg.exports=ZF});var Wg=P(function(Xir,Xg){"use strict";var XF=require("@stdlib/assert/is-function");function WF(r,a,e){var i=r[a];if(XF(i))return v;return i;function v(){var t,o;for(t=[],o=0;o=pU&&r<=yU?"float32":"float64":r>-ri&&r=mU?"int8":r>=xU?"int16":r>=qU?"int32":"float64":r<=gU?"uint8":r<=hU?"uint16":r<=bU?"uint32":"float64":r>-ri&&r1){if(a=arguments[1],!jU(a))throw new TypeError(lh("invalid argument. Options argument must be an object. Value: `%s`.",a));Et(a,"dtype")&&(e.dtype=a.dtype),Et(a,"order")&&(e.order=a.order),Et(a,"readonly")&&(e.readonly=a.readonly)}if(v=EU(r),e.dtype===""?v?o="float64":_U(r)?o="complex128":o="generic":o=e.dtype,i=kU(o,1),i===null)throw new TypeError(lh("invalid option. `%s` option must be a recognized data type. Option: `%s`.","dtype",o));return/^complex/.test(o)&&v?s=[r,0]:s=r,OU(i)?t=TU(o):t=IU(o),t(i,0,s),new AU(o,i,[],[0],0,e.order,e)}ch.exports=DU});var _t=P(function(ttr,ph){"use strict";var zU=yh();ph.exports=zU});var qh=P(function(vtr,xh){"use strict";var CU=Ha(),PU=require("@stdlib/assert/is-ndarray-like"),LU=require("@stdlib/assert/is-number").isPrimitive,VU=require("@stdlib/assert/is-integer").isPrimitive,MU=require("@stdlib/assert/is-complex-like"),BU=oa(),FU=La(),UU=Ba(),YU=Ma(),mh=Ta(),KU=require("@stdlib/constants/int8/max"),GU=require("@stdlib/constants/int16/max"),JU=require("@stdlib/constants/int32/max"),ei=jt(),ZU=require("@stdlib/complex/dtype"),Qe=_t(),Le=require("@stdlib/string/format"),XU=St(),WU=wt();function He(r){return{dtype:r}}function QU(r,a,e,i,v){var t,o,s,u,f;if(!PU(e))if(s=r.dtype,s==="generic")e=Qe(e,He(s));else if(LU(e))if(FU(s))e=Qe(e,He(s));else if(UU(s))if(o=ei(e),mh(o,s))e=Qe(e,He(s));else throw new TypeError(Le("invalid operation. Assigned value cannot be safely cast to the target array data type. Data types: [%s, %s].",o,s));else if(YU(s)){if(!VU(e))throw new TypeError(Le("invalid operation. Assigned value cannot be safely cast to the target array data type. Data types: [%s, %s].",ei(e),s));if(e<0?o=ei(e):e<=KU?o="int8":e<=GU?o="int16":e<=JU?o="int32":o="float64",mh(o,s))e=Qe(e,He(s));else throw new TypeError(Le("invalid operation. Assigned value cannot be safely cast to the target array data type. Data types: [%s, %s].",o,s))}else if(s==="binary")if(o=ei(e),o==="uint8")e=Qe(e,He(s));else throw new TypeError(Le("invalid operation. Assigned value cannot be safely cast to the target array data type. Data types: [%s, %s].",o,s));else throw new TypeError(Le("invalid operation. Unsupported target array data type. Data type: `%s`.",s));else if(MU(e)){if(!BU(s))throw new TypeError(Le("invalid operation. Assigned value cannot be safely cast to the target array data type. Data types: [%s, %s].",ZU(e),s));e=Qe(e,He(s))}else throw new TypeError(Le("invalid operation. Assigned value cannot be safely cast to the target array data type. Data types: [%s, %s].",typeof e,s));t=!1,f=v(r,a,t);try{return CU(e,i,f,t),!0}catch(n){throw u=WU(n),new u(XU(n.message))}}xh.exports=QU});var hh=P(function(str,gh){"use strict";var HU=bt(),$U=th(),rY=qh();function eY(r){return a;function a(e,i,v,t){return HU(i)?$U(e,i,v):rY(e,i,v,t,r)}}gh.exports=eY});var Oh=P(function(otr,_h){"use strict";var aY=require("@stdlib/utils/define-nonenumerable-read-only-property"),Sh=ye(),iY=require("@stdlib/utils/inherit"),bh=require("@stdlib/proxy/ctor"),wh=Mg(),jh=Yg(),Eh=Jg(),Ot=ah(),Tt=hh(),tY=Ot(wh),vY=Tt(wh),sY=Ot(jh),oY=Tt(jh),nY=Ot(Eh),uY=Tt(Eh);function $e(r,a,e,i,v,t,o){var s,u,f;return u=arguments.length,this instanceof $e?(Sh.call(this,r,a,e,i,v,t,u<7?{}:o),bh?(f=e.length,s={},f===0?(s.get=tY,s.set=vY):f===1?(s.get=sY,s.set=oY):(s.get=nY,s.set=uY),new bh(this,s)):(console.warn("WARNING: Proxy objects are not supported in the current environment. Some `FancyArray` functionality may not be available."),this)):u<7?new $e(r,a,e,i,v,t):new $e(r,a,e,i,v,t,o)}iY($e,Sh);aY($e,"name","ndarray");_h.exports=$e});var Ih=P(function(ntr,Th){"use strict";var fY=Oh();Th.exports=fY});var It=P(function(utr,dY){dY.exports={mode:"throw",order:"row-major"}});var At=P(function(ftr,Ah){"use strict";var lY=require("@stdlib/assert/is-plain-object"),kh=require("@stdlib/assert/has-own-property"),cY=ee(),yY=Me(),kt=require("@stdlib/string/format");function pY(r,a){return lY(a)?kh(a,"mode")&&(r.mode=a.mode,!yY(r.mode))?new TypeError(kt("invalid option. `%s` option must be a supported/recognized mode. Option: `%s`.","mode",r.mode)):kh(a,"order")&&(r.order=a.order,!cY(r.order))?new TypeError(kt("invalid option. `%s` option must be a supported/recognized order. Option: `%s`.","order",r.order)):null:new TypeError(kt("invalid argument. Options argument must be an object. Value: `%s`.",a))}Ah.exports=pY});var zh=P(function(dtr,Dh){"use strict";var mY=require("@stdlib/assert/is-nonnegative-integer-array").primitives,xY=require("@stdlib/assert/is-integer").isPrimitive,qY=Gr(),gY=Za(),Nh=require("@stdlib/string/format"),Rh=It(),hY=At();function bY(r,a,e){var i,v;if(i={},i.mode=Rh.mode,i.order=Rh.order,arguments.length>2&&(v=hY(i,e),v))throw v;if(!mY(r))throw new TypeError(Nh("invalid argument. Shape argument must be an array-like object containing nonnegative integers. Value: `%s`.",r));if(!xY(a))throw new TypeError(Nh("invalid argument. Linear index must be integer valued. Value: `%s`.",a));return gY(r,qY(r,i.order),0,i.order,a,i.mode)}Dh.exports=bY});var Lh=P(function(ltr,Ph){"use strict";var SY=require("@stdlib/assert/is-nonnegative-integer-array").primitives,wY=require("@stdlib/assert/is-integer").isPrimitive,jY=Gr(),EY=Za().assign,ai=require("@stdlib/string/format"),Ch=It(),_Y=At();function OY(r,a,e,i){var v,t,o;if(v={},v.mode=Ch.mode,v.order=Ch.order,arguments.length===4){if(o=_Y(v,arguments[2]),o)throw o;if(typeof i!="object"||i===null)throw new TypeError(ai("invalid argument. Output argument must be either an array, typed array, or object. Value: `%s`.",i));t=i}else if(t=e,typeof t!="object"||t===null)throw new TypeError(ai("invalid argument. Output argument must be either an array, typed array, or object. Value: `%s`.",t));if(!SY(r))throw new TypeError(ai("invalid argument. Shape argument must be an array-like object containing nonnegative integers. Value: `%s`.",r));if(!wY(a))throw new TypeError(ai("invalid argument. Linear index must be integer valued. Value: `%s`.",a));return EY(r,jY(r,v.order),0,v.order,a,v.mode,t)}Ph.exports=OY});var Bh=P(function(ctr,Mh){"use strict";var TY=require("@stdlib/utils/define-nonenumerable-read-only-property"),Vh=zh(),IY=Lh();TY(Vh,"assign",IY);Mh.exports=Vh});var Kh=P(function(ytr,Yh){"use strict";var Nt=require("@stdlib/utils/define-nonenumerable-read-only-property"),kY=require("@stdlib/assert/is-plain-object"),AY=require("@stdlib/assert/is-boolean").isPrimitive,NY=require("@stdlib/assert/is-ndarray-like"),RY=re(),DY=require("@stdlib/assert/has-own-property"),Fh=require("@stdlib/symbol/iterator"),zY=require("@stdlib/array/base/zeros"),CY=Yr(),PY=zr(),LY=Mr(),VY=ue().assign,MY=require("@stdlib/slice/base/args2multislice"),ii=require("@stdlib/string/format");function Uh(r){var a,e,i,v,t,o,s,u,f,n,d;if(!NY(r))throw new TypeError(ii("invalid argument. First argument must be an ndarray. Value: `%s`.",r));if(v={writable:!1},arguments.length>1){if(a=arguments[1],!kY(a))throw new TypeError(ii("invalid argument. Options argument must be an object. Value: `%s`.",a));if(DY(a,"readonly")){if(!AY(a.readonly))throw new TypeError(ii("invalid option. `%s` option must be a boolean. Option: `%s`.","readonly",a.readonly));if(v.writable=!a.readonly,v.writable&&RY(r))throw new Error(ii("invalid option. Cannot write to read-only array."))}}if(e=CY(r),i=e.length,i<2)throw new TypeError("invalid argument. First argument must be an ndarray having at least two dimensions.");return n=PY(e),n===0&&(o=!0),n/=e[i-2],u=i-1,f=e[u],d=-1,s=zY(i),s[i-2]=null,t={},Nt(t,"next",x),Nt(t,"return",b),Fh&&Nt(t,Fh,p),t;function x(){var l,h,m;return d+=1,o||d>=n?{done:!0}:(l=s.slice(),h=MY(s),m=(s[u]+1)%f,s[u]=m,m===0&&(s=VY(e,"row-major",s,u-2,s)),{value:[l,LY(r,h,!0,v.writable)],done:!1})}function b(l){return o=!0,arguments.length?{value:l,done:!0}:{done:!0}}function p(){return Uh(r,v)}}Yh.exports=Uh});var Jh=P(function(ptr,Gh){"use strict";var BY=Kh();Gh.exports=BY});var Qh=P(function(mtr,Wh){"use strict";var Rt=require("@stdlib/utils/define-nonenumerable-read-only-property"),FY=require("@stdlib/assert/is-plain-object"),UY=require("@stdlib/assert/is-boolean").isPrimitive,YY=require("@stdlib/assert/is-ndarray-like"),KY=re(),GY=require("@stdlib/assert/has-own-property"),Zh=require("@stdlib/symbol/iterator"),JY=require("@stdlib/array/base/zeros"),ZY=Yr(),XY=zr(),WY=Mr(),QY=ue().assign,HY=require("@stdlib/slice/base/args2multislice"),ti=require("@stdlib/string/format");function Xh(r){var a,e,i,v,t,o,s,u,f,n,d;if(!YY(r))throw new TypeError(ti("invalid argument. First argument must be an ndarray. Value: `%s`.",r));if(v={writable:!1},arguments.length>1){if(a=arguments[1],!FY(a))throw new TypeError(ti("invalid argument. Options argument must be an object. Value: `%s`.",a));if(GY(a,"readonly")){if(!UY(a.readonly))throw new TypeError(ti("invalid option. `%s` option must be a boolean. Option: `%s`.","readonly",a.readonly));if(v.writable=!a.readonly,v.writable&&KY(r))throw new Error(ti("invalid option. Cannot write to read-only array."))}}if(e=ZY(r),i=e.length,i<2)throw new TypeError("invalid argument. First argument must be an ndarray having at least two dimensions.");return n=XY(e),n===0&&(o=!0),n/=e[i-2],u=i-1,f=e[u],d=-1,s=JY(i),s[i-2]=null,t={},Rt(t,"next",x),Rt(t,"return",b),Zh&&Rt(t,Zh,p),t;function x(){var l,h;return d+=1,o||d>=n?{done:!0}:(l=HY(s),h=(s[u]+1)%f,s[u]=h,h===0&&(s=QY(e,"row-major",s,u-2,s)),{value:WY(r,l,!0,v.writable),done:!1})}function b(l){return o=!0,arguments.length?{value:l,done:!0}:{done:!0}}function p(){return Xh(r,v)}}Wh.exports=Xh});var $h=P(function(xtr,Hh){"use strict";var $Y=Qh();Hh.exports=$Y});var i4=P(function(qtr,a4){"use strict";var Dt=require("@stdlib/utils/define-nonenumerable-read-only-property"),rK=require("@stdlib/assert/is-plain-object"),eK=ee(),aK=require("@stdlib/assert/is-ndarray-like"),iK=require("@stdlib/assert/has-own-property"),r4=require("@stdlib/symbol/iterator"),tK=require("@stdlib/array/base/zeros"),vK=Yr(),sK=zr(),oK=ue().assign,zt=require("@stdlib/string/format");function e4(r){var a,e,i,v,t,o,s,u,f,n;if(!aK(r))throw new TypeError(zt("invalid argument. First argument must be an ndarray. Value: `%s`.",r));if(v={order:r.order},arguments.length>1){if(a=arguments[1],!rK(a))throw new TypeError(zt("invalid argument. Options argument must be an object. Value: `%s`.",a));if(iK(a,"order")){if(!eK(a.order))throw new TypeError(zt("invalid option. `%s` option must be a recognized order. Option: `%s`.","order",a.order));v.order=a.order}}return e=vK(r),i=e.length,f=sK(e),f===0&&(o=!0),v.order==="row-major"?u=i-1:u=0,n=-1,s=tK(i),t={},Dt(t,"next",d),Dt(t,"return",x),r4&&Dt(t,r4,b),t;function d(){return n+=1,o||n>=f?{done:!0}:(n>0&&(s=oK(e,v.order,s,u,s)),{value:[s.slice(),r.get.apply(r,s)],done:!1})}function x(p){return o=!0,arguments.length?{value:p,done:!0}:{done:!0}}function b(){return e4(r,v)}}a4.exports=e4});var v4=P(function(gtr,t4){"use strict";var nK=i4();t4.exports=nK});var u4=P(function(htr,n4){"use strict";var Ct=require("@stdlib/utils/define-nonenumerable-read-only-property"),uK=require("@stdlib/assert/is-plain-object"),fK=ee(),dK=require("@stdlib/assert/is-collection"),lK=require("@stdlib/assert/is-nonnegative-integer").isPrimitive,cK=require("@stdlib/assert/has-own-property"),s4=require("@stdlib/symbol/iterator"),yK=require("@stdlib/array/base/zeros"),pK=zr(),mK=ue().assign,vi=require("@stdlib/string/format");function o4(r){var a,e,i,v,t,o,s,u,f,n;if(!dK(r))throw new TypeError(vi("invalid argument. First argument must be an array of nonnegative integers. Value: `%s`.",r));if(i={order:"row-major"},arguments.length>1){if(a=arguments[1],!uK(a))throw new TypeError(vi("invalid argument. Options argument must be an object. Value: `%s`.",a));if(cK(a,"order")){if(!fK(a.order))throw new TypeError(vi("invalid option. `%s` option must be a recognized order. Option: `%s`.","order",a.order));i.order=a.order}}for(e=r.length,u=[],n=0;n=f?{done:!0}:(n>0&&(o=mK(r,i.order,o,s,o)),{value:o.slice(),done:!1})}function x(p){return t=!0,arguments.length?{value:p,done:!0}:{done:!0}}function b(){return o4(u,i)}}n4.exports=o4});var d4=P(function(btr,f4){"use strict";var xK=u4();f4.exports=xK});var p4=P(function(Str,y4){"use strict";var Pt=require("@stdlib/utils/define-nonenumerable-read-only-property"),qK=require("@stdlib/assert/is-plain-object"),gK=require("@stdlib/assert/is-boolean").isPrimitive,hK=require("@stdlib/assert/is-ndarray-like"),bK=re(),SK=require("@stdlib/assert/has-own-property"),l4=require("@stdlib/symbol/iterator"),wK=require("@stdlib/array/base/zeros"),jK=Yr(),EK=zr(),_K=Mr(),OK=ue().assign,TK=require("@stdlib/slice/base/args2multislice"),si=require("@stdlib/string/format");function c4(r){var a,e,i,v,t,o,s,u,f,n,d;if(!hK(r))throw new TypeError(si("invalid argument. First argument must be an ndarray. Value: `%s`.",r));if(v={writable:!1},arguments.length>1){if(a=arguments[1],!qK(a))throw new TypeError(si("invalid argument. Options argument must be an object. Value: `%s`.",a));if(SK(a,"readonly")){if(!gK(a.readonly))throw new TypeError(si("invalid option. `%s` option must be a boolean. Option: `%s`.","readonly",a.readonly));if(v.writable=!a.readonly,v.writable&&bK(r))throw new Error(si("invalid option. Cannot write to read-only array."))}}if(e=jK(r),i=e.length,i<3)throw new TypeError("invalid argument. First argument must be an ndarray having at least three dimensions.");return n=EK(e),n===0&&(o=!0),n/=e[i-1]*e[i-2],u=i-3,f=e[u],d=-1,s=wK(i),s[i-1]=null,s[i-2]=null,t={},Pt(t,"next",x),Pt(t,"return",b),l4&&Pt(t,l4,p),t;function x(){var l,h;return d+=1,o||d>=n?{done:!0}:(l=TK(s),h=(s[u]+1)%f,s[u]=h,h===0&&(s=OK(e,"row-major",s,u-1,s)),{value:_K(r,l,!0,v.writable),done:!1})}function b(l){return o=!0,arguments.length?{value:l,done:!0}:{done:!0}}function p(){return c4(r,v)}}y4.exports=c4});var x4=P(function(wtr,m4){"use strict";var IK=p4();m4.exports=IK});var b4=P(function(jtr,h4){"use strict";var Lt=require("@stdlib/utils/define-nonenumerable-read-only-property"),kK=require("@stdlib/assert/is-plain-object"),AK=require("@stdlib/assert/is-boolean").isPrimitive,NK=require("@stdlib/assert/is-ndarray-like"),RK=re(),DK=require("@stdlib/assert/has-own-property"),q4=require("@stdlib/symbol/iterator"),zK=require("@stdlib/array/base/zeros"),CK=Yr(),PK=zr(),LK=Mr(),VK=ue().assign,MK=require("@stdlib/slice/base/args2multislice"),oi=require("@stdlib/string/format");function g4(r){var a,e,i,v,t,o,s,u,f,n,d;if(!NK(r))throw new TypeError(oi("invalid argument. First argument must be an ndarray. Value: `%s`.",r));if(v={writable:!1},arguments.length>1){if(a=arguments[1],!kK(a))throw new TypeError(oi("invalid argument. Options argument must be an object. Value: `%s`.",a));if(DK(a,"readonly")){if(!AK(a.readonly))throw new TypeError(oi("invalid option. `%s` option must be a boolean. Option: `%s`.","readonly",a.readonly));if(v.writable=!a.readonly,v.writable&&RK(r))throw new Error(oi("invalid option. Cannot write to read-only array."))}}if(e=CK(r),i=e.length,i<3)throw new TypeError("invalid argument. First argument must be an ndarray having at least three dimensions.");return n=PK(e),n===0&&(o=!0),n/=e[i-1]*e[i-2],u=i-3,f=e[u],d=-1,s=zK(i),s[i-1]=null,s[i-2]=null,t={},Lt(t,"next",x),Lt(t,"return",b),q4&&Lt(t,q4,p),t;function x(){var l,h,m;return d+=1,o||d>=n?{done:!0}:(l=s.slice(),h=MK(s),m=(s[u]+1)%f,s[u]=m,m===0&&(s=VK(e,"row-major",s,u-1,s)),{value:[l,LK(r,h,!0,v.writable)],done:!1})}function b(l){return o=!0,arguments.length?{value:l,done:!0}:{done:!0}}function p(){return g4(r,v)}}h4.exports=g4});var w4=P(function(Etr,S4){"use strict";var BK=b4();S4.exports=BK});var O4=P(function(_tr,_4){"use strict";var Vt=require("@stdlib/utils/define-nonenumerable-read-only-property"),FK=require("@stdlib/assert/is-plain-object"),UK=require("@stdlib/assert/is-boolean").isPrimitive,YK=require("@stdlib/assert/is-ndarray-like"),KK=re(),GK=require("@stdlib/assert/has-own-property"),j4=require("@stdlib/symbol/iterator"),JK=require("@stdlib/array/base/zeros"),ZK=Yr(),XK=zr(),WK=Mr(),QK=ue().assign,HK=require("@stdlib/slice/base/args2multislice"),ni=require("@stdlib/string/format");function E4(r){var a,e,i,v,t,o,s,u,f,n,d;if(!YK(r))throw new TypeError(ni("invalid argument. First argument must be an ndarray. Value: `%s`.",r));if(v={writable:!1},arguments.length>1){if(a=arguments[1],!FK(a))throw new TypeError(ni("invalid argument. Options argument must be an object. Value: `%s`.",a));if(GK(a,"readonly")){if(!UK(a.readonly))throw new TypeError(ni("invalid option. `%s` option must be a boolean. Option: `%s`.","readonly",a.readonly));if(v.writable=!a.readonly,v.writable&&KK(r))throw new Error(ni("invalid option. Cannot write to read-only array."))}}if(e=ZK(r),i=e.length,i<2)throw new TypeError("invalid argument. First argument must be an ndarray having at least two dimensions.");return n=XK(e),n===0&&(o=!0),n/=e[i-1],u=i-2,f=e[u],d=-1,s=JK(i),s[i-1]=null,t={},Vt(t,"next",x),Vt(t,"return",b),j4&&Vt(t,j4,p),t;function x(){var l,h,m;return d+=1,o||d>=n?{done:!0}:(l=s.slice(),h=HK(s),m=(s[u]+1)%f,s[u]=m,m===0&&(s=QK(e,"row-major",s,u-1,s)),{value:[l,WK(r,h,!0,v.writable)],done:!1})}function b(l){return o=!0,arguments.length?{value:l,done:!0}:{done:!0}}function p(){return E4(r,v)}}_4.exports=E4});var I4=P(function(Otr,T4){"use strict";var $K=O4();T4.exports=$K});var R4=P(function(Ttr,N4){"use strict";var Mt=require("@stdlib/utils/define-nonenumerable-read-only-property"),rG=require("@stdlib/assert/is-plain-object"),eG=require("@stdlib/assert/is-boolean").isPrimitive,aG=require("@stdlib/assert/is-ndarray-like"),iG=re(),tG=require("@stdlib/assert/has-own-property"),k4=require("@stdlib/symbol/iterator"),vG=require("@stdlib/array/base/zeros"),sG=Yr(),oG=zr(),nG=Mr(),uG=ue().assign,fG=require("@stdlib/slice/base/args2multislice"),ui=require("@stdlib/string/format");function A4(r){var a,e,i,v,t,o,s,u,f,n,d;if(!aG(r))throw new TypeError(ui("invalid argument. First argument must be an ndarray. Value: `%s`.",r));if(v={writable:!1},arguments.length>1){if(a=arguments[1],!rG(a))throw new TypeError(ui("invalid argument. Options argument must be an object. Value: `%s`.",a));if(tG(a,"readonly")){if(!eG(a.readonly))throw new TypeError(ui("invalid option. `%s` option must be a boolean. Option: `%s`.","readonly",a.readonly));if(v.writable=!a.readonly,v.writable&&iG(r))throw new Error(ui("invalid option. Cannot write to read-only array."))}}if(e=sG(r),i=e.length,i<2)throw new TypeError("invalid argument. First argument must be an ndarray having at least two dimensions.");return n=oG(e),n===0&&(o=!0),n/=e[i-1],u=i-2,f=e[u],d=-1,s=vG(i),s[i-1]=null,t={},Mt(t,"next",x),Mt(t,"return",b),k4&&Mt(t,k4,p),t;function x(){var l,h;return d+=1,o||d>=n?{done:!0}:(l=fG(s),h=(s[u]+1)%f,s[u]=h,h===0&&(s=uG(e,"row-major",s,u-1,s)),{value:nG(r,l,!0,v.writable),done:!1})}function b(l){return o=!0,arguments.length?{value:l,done:!0}:{done:!0}}function p(){return A4(r,v)}}N4.exports=A4});var z4=P(function(Itr,D4){"use strict";var dG=R4();D4.exports=dG});var P4=P(function(ktr,C4){"use strict";var lG=require("@stdlib/assert/is-ndarray-like"),cG=yt(),yG=Ce(),pG=Ue(),mG=Yr(),xG=Te(),qG=Ye(),gG=require("@stdlib/string/format");function hG(r){if(!lG(r))throw new TypeError(gG("invalid argument. Must provide an ndarray. Value: `%s`.",r));return cG(qG(r),mG(r),yG(r),pG(r),xG(r))}C4.exports=hG});var Bt=P(function(Atr,L4){"use strict";var bG=P4();L4.exports=bG});var B4=P(function(Ntr,M4){"use strict";var Ft=require("@stdlib/utils/define-nonenumerable-read-only-property"),SG=require("@stdlib/assert/is-function"),wG=require("@stdlib/assert/is-iterator-like"),fi=require("@stdlib/symbol/iterator"),jG=Bt(),EG=require("@stdlib/string/format");function V4(r){var a,e;if(!wG(r))throw new TypeError(EG("invalid argument. First argument must be an iterator protocol-compliant object. Value: `%s`.",r));return a={},Ft(a,"next",i),Ft(a,"return",v),fi&&SG(r[fi])&&Ft(a,fi,t),a;function i(){var o;return e?{done:!0}:(o=r.next(),o.done?(e=!0,o):{value:jG(o.value),done:!1})}function v(o){return e=!0,arguments.length?{value:o,done:!0}:{done:!0}}function t(){return V4(r[fi]())}}M4.exports=V4});var U4=P(function(Rtr,F4){"use strict";var _G=B4();F4.exports=_G});var J4=P(function(Dtr,G4){"use strict";var Ut=require("@stdlib/utils/define-nonenumerable-read-only-property"),OG=require("@stdlib/assert/is-plain-object"),TG=ee(),IG=require("@stdlib/assert/is-ndarray-like"),kG=require("@stdlib/assert/has-own-property"),Y4=require("@stdlib/symbol/iterator"),AG=require("@stdlib/array/base/zeros"),NG=Yr(),RG=zr(),DG=ue().assign,Yt=require("@stdlib/string/format");function K4(r){var a,e,i,v,t,o,s,u,f,n;if(!IG(r))throw new TypeError(Yt("invalid argument. First argument must be an ndarray. Value: `%s`.",r));if(v={order:r.order},arguments.length>1){if(a=arguments[1],!OG(a))throw new TypeError(Yt("invalid argument. Options argument must be an object. Value: `%s`.",a));if(kG(a,"order")){if(!TG(a.order))throw new TypeError(Yt("invalid option. `%s` option must be a recognized order. Option: `%s`.","order",a.order));v.order=a.order}}return e=NG(r),i=e.length,f=RG(e),f===0&&(o=!0),v.order==="row-major"?u=i-1:u=0,n=-1,s=AG(i),t={},Ut(t,"next",d),Ut(t,"return",x),Y4&&Ut(t,Y4,b),t;function d(){return n+=1,o||n>=f?{done:!0}:(n>0&&(s=DG(e,v.order,s,u,s)),{value:r.get.apply(r,s),done:!1})}function x(p){return o=!0,arguments.length?{value:p,done:!0}:{done:!0}}function b(){return K4(r,v)}}G4.exports=K4});var X4=P(function(ztr,Z4){"use strict";var zG=J4();Z4.exports=zG});var Q4=P(function(Ctr,W4){"use strict";var xe=require("@stdlib/utils/define-read-only-property"),fe={};xe(fe,"nditerColumnEntries",Jh());xe(fe,"nditerColumns",$h());xe(fe,"nditerEntries",v4());xe(fe,"nditerIndices",d4());xe(fe,"nditerMatrices",x4());xe(fe,"nditerMatrixEntries",w4());xe(fe,"nditerRowEntries",I4());xe(fe,"nditerRows",z4());xe(fe,"nditer2arrayEach",U4());xe(fe,"nditerValues",X4());W4.exports=fe});var rb=P(function(Ptr,$4){"use strict";var CG=require("@stdlib/assert/is-ndarray-like"),PG=require("@stdlib/assert/is-collection"),LG=require("@stdlib/assert/is-nonnegative-integer").isPrimitive,H4=pt(),Kt=require("@stdlib/string/format");function VG(r,a){var e,i,v,t;if(!CG(r))throw new TypeError(Kt("invalid argument. First argument must be an ndarray. Value: `%s`.",r));if(!PG(a))throw new TypeError(Kt("invalid argument. Second argument must be an array of nonnegative integers. Value: `%s`.",a));if(i=a.length,e=r.shape,e.length===i){for(t=0;t0)throw new RangeError(ci("invalid argument. Number of slice dimensions does not match the number of array dimensions. Array shape: (%s). Slice dimensions: %u.",o.join(","),0))}if(iJ(a)){if(s=a,i>2)throw new Error("invalid invocation. Too many arguments.")}else{if(tJ(a)){if(t=a,i>2)throw new Error("invalid invocation. Too many arguments.")}else for(t=[],u=1;u0)throw new RangeError(qa("invalid argument. Number of slice dimensions does not match the number of array dimensions. Array shape: (%s). Slice dimensions: %u.",s.join(","),0))}if(yJ(e)){if(u=e,v>3)throw new Error("invalid invocation. Too many arguments.")}else{if(pJ(e)){if(o=e,v>3)throw new Error("invalid invocation. Too many arguments.")}else for(o=[],f=2;f3){if(i=arguments[3],!_J(i))throw new TypeError(ga("invalid argument. Options argument must be an object. Value: `%s`.",i));if(NJ(i,"strict")){if(!OJ(i.strict))throw new TypeError(ga("invalid option. `%s` option must be a boolean. Option: `%s`.","strict",i.strict));t.strict=i.strict}}return DJ(r,a,v,t.strict,!1)}kb.exports=zJ});var Rb=P(function(Htr,Nb){"use strict";var CJ=Ab();Nb.exports=CJ});var Cb=P(function($tr,zb){"use strict";var PJ=require("@stdlib/assert/is-plain-object"),LJ=require("@stdlib/assert/is-boolean").isPrimitive,Db=require("@stdlib/assert/is-integer").isPrimitive,VJ=require("@stdlib/assert/is-ndarray-like"),MJ=require("@stdlib/assert/has-own-property"),BJ=dt(),ha=require("@stdlib/string/format");function FJ(r,a,e){var i,v;if(v={strict:!0},!VJ(r))throw new TypeError(ha("invalid argument. First argument must be an ndarray. Value: `%s`.",r));if(!Db(a))throw new TypeError(ha("invalid argument. Second argument must be an integer. Value: `%s`.",a));if(!Db(e))throw new TypeError(ha("invalid argument. Third argument must be an integer. Value: `%s`.",e));if(arguments.length>3){if(i=arguments[3],!PJ(i))throw new TypeError(ha("invalid argument. Options argument must be an object. Value: `%s`.",i));if(MJ(i,"strict")){if(!LJ(i.strict))throw new TypeError(ha("invalid option. `%s` option must be a boolean. Option: `%s`.","strict",i.strict));v.strict=i.strict}}return BJ(r,a,e,v.strict,!1)}zb.exports=FJ});var Lb=P(function(rvr,Pb){"use strict";var UJ=Cb();Pb.exports=UJ});var Bb=P(function(evr,Mb){"use strict";var YJ=require("@stdlib/assert/is-plain-object"),KJ=require("@stdlib/assert/is-boolean").isPrimitive,Vb=require("@stdlib/assert/is-integer").isPrimitive,GJ=require("@stdlib/assert/is-ndarray-like"),JJ=require("@stdlib/assert/has-own-property"),ZJ=lt(),ba=require("@stdlib/string/format");function XJ(r,a,e){var i,v;if(v={strict:!0},!GJ(r))throw new TypeError(ba("invalid argument. First argument must be an ndarray. Value: `%s`.",r));if(!Vb(a))throw new TypeError(ba("invalid argument. Second argument must be an integer. Value: `%s`.",a));if(!Vb(e))throw new TypeError(ba("invalid argument. Third argument must be an integer. Value: `%s`.",e));if(arguments.length>3){if(i=arguments[3],!YJ(i))throw new TypeError(ba("invalid argument. Options argument must be an object. Value: `%s`.",i));if(JJ(i,"strict")){if(!KJ(i.strict))throw new TypeError(ba("invalid option. `%s` option must be a boolean. Option: `%s`.","strict",i.strict));v.strict=i.strict}}return ZJ(r,a,e,v.strict,!1)}Mb.exports=XJ});var Ub=P(function(avr,Fb){"use strict";var WJ=Bb();Fb.exports=WJ});var Yb=P(function(ivr,QJ){QJ.exports={mode:["throw"],order:"row-major"}});var Jb=P(function(tvr,Gb){"use strict";var HJ=require("@stdlib/assert/is-plain-object"),Kb=require("@stdlib/assert/has-own-property"),$J=require("@stdlib/assert/is-array"),rZ=ee(),eZ=Me(),yi=require("@stdlib/string/format");function aZ(r,a){var e;if(!HJ(a))return new TypeError(yi("invalid argument. Options argument must be an object. Value: `%s`.",a));if(Kb(a,"mode")){if(r.mode=a.mode,!$J(r.mode))r.mode=[r.mode];else if(r.mode.length===0)return new TypeError(yi("invalid option. `%s` option cannot be an empty array.","mode"));for(e=0;ee+1){if(u=o-1,r=arguments[u],t=oZ(v,r),t)throw t}else u=o;if(s=1,u-s!==e)throw new RangeError(Jt("invalid argument. Number of provided subscripts must match the number of dimensions. ndims: `%u`. Number of subscripts: `%u`.",e,u-s));for(i=new Array(e+4),i[0]=a,i[1]=vZ(a,v.order),i[2]=0;s1){if(a=arguments[1],!fZ(a))throw new TypeError(pi("invalid argument. Options argument must be an object. Value: `%s`.",a));Sa(a,"dtype")?e=a.dtype:e=$b,Sa(a,"order")?i=a.order:i=r6,Sa(a,"mode")&&(t.mode=a.mode),Sa(a,"submode")&&(t.submode=a.submode),Sa(a,"readonly")&&(t.readonly=a.readonly)}else e=$b,i=r6;if(typeof r=="number")f=[r];else if(dZ(r))f=r;else throw new TypeError(pi("invalid argument. First argument must be either a nonnegative integer or an array of nonnegative integers. Value: `%s`.",r));if(v=f.length,v>0){if(s=pZ(f),s!==s||s<0)throw new TypeError(pi("invalid argument. First argument must be either a nonnegative integer or an array of nonnegative integers. Value: `%s`.",r));u=lZ(f,i)}else s=1,u=[0];if(o=yZ(e,s),o===null)throw new TypeError(pi("invalid option. `%s` option must be a recognized data type. Option: `%s`.","dtype",e));return new mZ(e,o,f,u,cZ(f,u),i,t)}a6.exports=xZ});var v6=P(function(nvr,t6){"use strict";var qZ=i6();t6.exports=qZ});var f6=P(function(uvr,u6){"use strict";var gZ=require("@stdlib/assert/is-ndarray-like"),hZ=require("@stdlib/assert/is-plain-object"),bZ=require("@stdlib/assert/is-nonnegative-integer-array").primitives,ra=require("@stdlib/assert/has-own-property"),SZ=Gr(),wZ=Zr(),jZ=ve(),EZ=zr(),s6=Oe(),o6=Yr(),n6=Te(),_Z=ye(),mi=require("@stdlib/string/format");function OZ(r){var a,e,i,v,t,o,s,u,f;if(!gZ(r))throw new TypeError(mi("invalid argument. First argument must be an ndarray-like object. Value: `%s`.",r));if(t={},arguments.length>1){if(a=arguments[1],!hZ(a))throw new TypeError(mi("invalid argument. Options argument must be an object. Value: `%s`.",a));if(ra(a,"dtype")?e=a.dtype:e=s6(r),ra(a,"shape")){if(f=a.shape,typeof f=="number"&&(f=[f]),!bZ(f))throw new TypeError(mi("invalid option. `%s` option must be a nonnegative integer or an array of nonnegative integers. Option: `%s`.","shape",f))}else f=o6(r);ra(a,"order")?i=a.order:i=n6(r),ra(a,"mode")&&(t.mode=a.mode),ra(a,"submode")&&(t.submode=a.submode),ra(a,"readonly")&&(t.readonly=a.readonly)}else e=s6(r),f=o6(r),i=n6(r);if(v=f.length,v>0?(s=EZ(f),u=SZ(f,i)):(s=1,u=[0]),o=jZ(e,s),o===null)throw new TypeError(mi("invalid argument. First argument must have a recognized data type. Value: `%s`.",e));return new _Z(e,o,f,u,wZ(f,u),i,t)}u6.exports=OZ});var l6=P(function(fvr,d6){"use strict";var TZ=f6();d6.exports=TZ});var Rr=require("@stdlib/utils/define-read-only-property"),Nr={};Rr(Nr,"array",zu());Rr(Nr,"base",fg());Rr(Nr,"broadcastArray",pt());Rr(Nr,"ndarrayCastingModes",Oi());Rr(Nr,"ndarray",ye());Rr(Nr,"ndarrayDataBuffer",Ye());Rr(Nr,"defaults",ge());Rr(Nr,"dispatch",Sg());Rr(Nr,"ndarrayDataType",Oe());Rr(Nr,"ndarrayDataTypes",Kr());Rr(Nr,"ndempty",Ig());Rr(Nr,"ndemptyLike",Cg());Rr(Nr,"FancyArray",Ih());Rr(Nr,"scalar2ndarray",_t());Rr(Nr,"ind2sub",Bh());Rr(Nr,"ndarrayIndexModes",De());Rr(Nr,"iter",Q4());Rr(Nr,"maybeBroadcastArray",ab());Rr(Nr,"ndarrayMinDataType",jt());Rr(Nr,"ndarrayMostlySafeCasts",ki());Rr(Nr,"ndims",Pi());Rr(Nr,"ndarrayNextDataType",ob());Rr(Nr,"numel",lb());Rr(Nr,"ndarrayOffset",Ue());Rr(Nr,"ndarrayOrder",Te());Rr(Nr,"ndarrayOrders",Re());Rr(Nr,"ndarrayOutputDataTypePolicies",Xa());Rr(Nr,"ndarrayPromotionRules",gb());Rr(Nr,"ndarraySafeCasts",Ii());Rr(Nr,"ndarraySameKindCasts",Ai());Rr(Nr,"ndarrayShape",Yr());Rr(Nr,"ndslice",wb());Rr(Nr,"ndsliceAssign",Tb());Rr(Nr,"ndsliceDimension",Rb());Rr(Nr,"ndsliceDimensionFrom",Lb());Rr(Nr,"ndsliceDimensionTo",Ub());Rr(Nr,"ndarrayStrides",Ce());Rr(Nr,"sub2ind",Hb());Rr(Nr,"ndarray2array",Bt());Rr(Nr,"ndzeros",v6());Rr(Nr,"ndzerosLike",l6());module.exports=Nr; /** * @license Apache-2.0 * diff --git a/dist/index.js.map b/dist/index.js.map index 409bbf1b..3c7c051e 100644 --- a/dist/index.js.map +++ b/dist/index.js.map @@ -1,7 +1,7 @@ { "version": 3, - "sources": ["../base/shape2strides/lib/main.js", "../base/shape2strides/lib/assign.js", "../base/shape2strides/lib/index.js", "../base/strides2offset/lib/main.js", "../base/strides2offset/lib/index.js", "../base/strides2order/lib/main.js", "../base/strides2order/lib/index.js", "../base/numel/lib/main.js", "../base/numel/lib/index.js", "../orders/lib/orders.json", "../orders/lib/main.js", "../orders/lib/enum.js", "../orders/lib/index.js", "../base/assert/is-order/lib/main.js", "../base/assert/is-order/lib/index.js", "../dtypes/lib/dtypes.json", "../dtypes/lib/main.js", "../dtypes/lib/enum.js", "../dtypes/lib/assign.js", "../dtypes/lib/index.js", "../base/assert/is-data-type/lib/main.js", "../base/assert/is-data-type/lib/index.js", "../base/minmax-view-buffer-index/lib/main.js", "../base/minmax-view-buffer-index/lib/assign.js", "../base/minmax-view-buffer-index/lib/index.js", "../base/assert/is-buffer-length-compatible/lib/main.js", "../base/assert/is-buffer-length-compatible/lib/index.js", "../base/bytes-per-element/lib/bytes_per_element.json", "../base/bytes-per-element/lib/main.js", "../base/bytes-per-element/lib/index.js", "../base/iteration-order/lib/main.js", "../base/iteration-order/lib/index.js", "../base/ctor/lib/is_column_major_contiguous.js", "../base/ctor/lib/is_row_major_contiguous.js", "../base/ctor/lib/is_contiguous.js", "../base/ctor/lib/copy_flags.js", "../base/ctor/lib/iget.js", "../base/ctor/lib/iset.js", "../base/ctor/lib/set.js", "../base/ctor/lib/get.js", "../base/ctor/lib/tojson.js", "../base/ctor/lib/tostring.js", "../index-modes/lib/modes.json", "../index-modes/lib/main.js", "../index-modes/lib/enum.js", "../index-modes/lib/index.js", "../base/ctor/lib/meta2dataview.js", "../base/ctor/lib/meta2dataview.polyfill.js", "../base/ctor/lib/main.js", "../base/ctor/lib/index.js", "../defaults/lib/main.js", "../defaults/lib/get.js", "../defaults/lib/index.js", "../base/clamp-index/lib/main.js", "../base/clamp-index/lib/index.js", "../base/wrap-index/lib/main.js", "../base/wrap-index/lib/index.js", "../base/normalize-index/lib/main.js", "../base/normalize-index/lib/index.js", "../base/ind/lib/main.js", "../base/ind/lib/index.js", "../ctor/lib/iget.js", "../ctor/lib/iset.js", "../ctor/lib/get.js", "../ctor/lib/set.js", "../ctor/lib/copy_array.js", "../base/assert/is-index-mode/lib/main.js", "../base/assert/is-index-mode/lib/index.js", "../ctor/lib/validate.js", "../ctor/lib/main.js", "../ctor/lib/index.js", "../casting-modes/lib/modes.json", "../casting-modes/lib/main.js", "../casting-modes/lib/enum.js", "../casting-modes/lib/index.js", "../base/assert/is-casting-mode/lib/main.js", "../base/assert/is-casting-mode/lib/index.js", "../base/dtype-enum2str/lib/main.js", "../base/dtype-enum2str/lib/index.js", "../base/dtype-str2enum/lib/main.js", "../base/dtype-str2enum/lib/index.js", "../base/dtype-resolve-str/lib/main.js", "../base/dtype-resolve-str/lib/index.js", "../safe-casts/lib/safe_casts.json", "../safe-casts/lib/main.js", "../safe-casts/lib/index.js", "../base/assert/is-safe-data-type-cast/lib/main.js", "../base/assert/is-safe-data-type-cast/lib/index.js", "../mostly-safe-casts/lib/data.json", "../mostly-safe-casts/lib/main.js", "../mostly-safe-casts/lib/index.js", "../base/assert/is-mostly-safe-data-type-cast/lib/main.js", "../base/assert/is-mostly-safe-data-type-cast/lib/index.js", "../same-kind-casts/lib/same_kind_casts.json", "../same-kind-casts/lib/main.js", "../same-kind-casts/lib/index.js", "../base/assert/is-same-kind-data-type-cast/lib/main.js", "../base/assert/is-same-kind-data-type-cast/lib/index.js", "../base/assert/is-allowed-data-type-cast/lib/main.js", "../base/assert/is-allowed-data-type-cast/lib/index.js", "../base/buffer-ctors/lib/ctors.js", "../base/buffer-ctors/lib/main.js", "../base/buffer-ctors/lib/index.js", "../base/buffer/lib/zeros.js", "../base/buffer/lib/main.js", "../base/buffer/lib/index.js", "../base/buffer-dtype/lib/ctor2dtype.js", "../base/buffer-dtype/lib/ctors.js", "../base/buffer-dtype/lib/dtypes.js", "../base/buffer-dtype/lib/main.js", "../base/buffer-dtype/lib/index.js", "../dtype/lib/main.js", "../dtype/lib/index.js", "../shape/lib/main.js", "../shape/lib/index.js", "../strides/lib/main.js", "../strides/lib/index.js", "../offset/lib/main.js", "../offset/lib/index.js", "../ndims/lib/main.js", "../ndims/lib/index.js", "../order/lib/main.js", "../order/lib/index.js", "../data-buffer/lib/main.js", "../data-buffer/lib/index.js", "../array/lib/is_array_like_object.js", "../array/lib/defaults.js", "../array/lib/cast_buffer.js", "../array/lib/copy_view.js", "../array/lib/expand_shape.js", "../array/lib/expand_strides.js", "../array/lib/main.js", "../array/lib/index.js", "../base/assert/is-buffer-length-compatible-shape/lib/main.js", "../base/assert/is-buffer-length-compatible-shape/lib/index.js", "../base/assert/is-column-major/lib/main.js", "../base/assert/is-column-major/lib/index.js", "../base/assert/is-single-segment-compatible/lib/main.js", "../base/assert/is-single-segment-compatible/lib/index.js", "../base/assert/is-column-major-contiguous/lib/main.js", "../base/assert/is-column-major-contiguous/lib/index.js", "../base/assert/is-complex-floating-point-data-type/lib/main.js", "../base/assert/is-complex-floating-point-data-type/lib/index.js", "../base/assert/is-contiguous/lib/main.js", "../base/assert/is-contiguous/lib/index.js", "../base/assert/is-floating-point-data-type/lib/main.js", "../base/assert/is-floating-point-data-type/lib/index.js", "../base/assert/is-integer-data-type/lib/main.js", "../base/assert/is-integer-data-type/lib/index.js", "../base/assert/is-numeric-data-type/lib/main.js", "../base/assert/is-numeric-data-type/lib/index.js", "../base/assert/is-read-only/lib/main.js", "../base/assert/is-read-only/lib/index.js", "../base/assert/is-real-data-type/lib/main.js", "../base/assert/is-real-data-type/lib/index.js", "../base/assert/is-real-floating-point-data-type/lib/main.js", "../base/assert/is-real-floating-point-data-type/lib/index.js", "../base/assert/is-row-major/lib/main.js", "../base/assert/is-row-major/lib/index.js", "../base/assert/is-row-major-contiguous/lib/main.js", "../base/assert/is-row-major-contiguous/lib/index.js", "../base/assert/is-signed-integer-data-type/lib/main.js", "../base/assert/is-signed-integer-data-type/lib/index.js", "../base/assert/is-unsigned-integer-data-type/lib/main.js", "../base/assert/is-unsigned-integer-data-type/lib/index.js", "../base/assert/lib/index.js", "../base/dtype/lib/main.js", "../base/dtype/lib/index.js", "../base/shape/lib/main.js", "../base/shape/lib/index.js", "../base/strides/lib/main.js", "../base/strides/lib/index.js", "../base/offset/lib/main.js", "../base/offset/lib/index.js", "../base/order/lib/main.js", "../base/order/lib/index.js", "../base/data-buffer/lib/main.js", "../base/data-buffer/lib/index.js", "../base/ndarraylike2object/lib/main.js", "../base/ndarraylike2object/lib/index.js", "../base/unary-loop-interchange-order/lib/sort2ins.js", "../base/unary-loop-interchange-order/lib/main.js", "../base/unary-loop-interchange-order/lib/index.js", "../base/unary-tiling-block-size/lib/defaults.js", "../base/unary-tiling-block-size/lib/main.js", "../base/unary-tiling-block-size/lib/index.js", "../base/assign/lib/2d_blocked_accessors.js", "../base/assign/lib/3d_blocked_accessors.js", "../base/assign/lib/4d_blocked_accessors.js", "../base/assign/lib/5d_blocked_accessors.js", "../base/assign/lib/6d_blocked_accessors.js", "../base/assign/lib/7d_blocked_accessors.js", "../base/assign/lib/8d_blocked_accessors.js", "../base/assign/lib/9d_blocked_accessors.js", "../base/assign/lib/10d_blocked_accessors.js", "../base/assign/lib/2d_blocked.js", "../base/assign/lib/3d_blocked.js", "../base/assign/lib/4d_blocked.js", "../base/assign/lib/5d_blocked.js", "../base/assign/lib/6d_blocked.js", "../base/assign/lib/7d_blocked.js", "../base/assign/lib/8d_blocked.js", "../base/assign/lib/9d_blocked.js", "../base/assign/lib/10d_blocked.js", "../base/assign/lib/0d_accessors.js", "../base/assign/lib/1d_accessors.js", "../base/assign/lib/2d_accessors.js", "../base/assign/lib/3d_accessors.js", "../base/assign/lib/4d_accessors.js", "../base/assign/lib/5d_accessors.js", "../base/assign/lib/6d_accessors.js", "../base/assign/lib/7d_accessors.js", "../base/assign/lib/8d_accessors.js", "../base/assign/lib/9d_accessors.js", "../base/assign/lib/10d_accessors.js", "../base/vind2bind/lib/main.js", "../base/vind2bind/lib/index.js", "../base/assign/lib/nd_accessors.js", "../base/assign/lib/0d.js", "../base/assign/lib/1d.js", "../base/assign/lib/2d.js", "../base/assign/lib/3d.js", "../base/assign/lib/4d.js", "../base/assign/lib/5d.js", "../base/assign/lib/6d.js", "../base/assign/lib/7d.js", "../base/assign/lib/8d.js", "../base/assign/lib/9d.js", "../base/assign/lib/10d.js", "../base/assign/lib/nd.js", "../base/assign/lib/main.js", "../base/assign/lib/index.js", "../base/binary-loop-interchange-order/lib/sort2ins.js", "../base/binary-loop-interchange-order/lib/main.js", "../base/binary-loop-interchange-order/lib/index.js", "../base/binary-tiling-block-size/lib/defaults.js", "../base/binary-tiling-block-size/lib/main.js", "../base/binary-tiling-block-size/lib/index.js", "../base/bind2vind/lib/main.js", "../base/bind2vind/lib/index.js", "../base/broadcast-array/lib/main.js", "../base/broadcast-array/lib/index.js", "../base/broadcast-scalar/lib/main.js", "../base/broadcast-scalar/lib/index.js", "../base/broadcast-shapes/lib/main.js", "../base/broadcast-shapes/lib/index.js", "../base/buffer-dtype-enum/lib/main.js", "../base/buffer-dtype-enum/lib/index.js", "../base/dtype-char/lib/table.js", "../base/dtype-char/lib/main.js", "../base/dtype-char/lib/index.js", "../base/char2dtype/lib/main.js", "../base/char2dtype/lib/index.js", "../base/dtype-desc/lib/table.js", "../base/dtype-desc/lib/main.js", "../base/dtype-desc/lib/index.js", "../base/dtype-resolve-enum/lib/main.js", "../base/dtype-resolve-enum/lib/index.js", "../base/dtype2c/lib/table.json", "../base/dtype2c/lib/main.js", "../base/dtype2c/lib/index.js", "../base/dtypes2signatures/lib/main.js", "../base/dtypes2signatures/lib/index.js", "../base/empty/lib/main.js", "../base/empty/lib/index.js", "../base/empty-like/lib/main.js", "../base/empty-like/lib/index.js", "../base/expand-dimensions/lib/main.js", "../base/expand-dimensions/lib/index.js", "../base/slice/lib/slice_start.js", "../base/slice/lib/slice_strides.js", "../base/slice/lib/empty.js", "../base/slice/lib/main.js", "../base/slice/lib/index.js", "../base/ndims/lib/main.js", "../base/ndims/lib/index.js", "../base/reverse-dimension/lib/main.js", "../base/reverse-dimension/lib/index.js", "../base/fliplr/lib/main.js", "../base/fliplr/lib/index.js", "../base/flipud/lib/main.js", "../base/flipud/lib/index.js", "../base/from-scalar/lib/main.js", "../base/from-scalar/lib/index.js", "../base/ind2sub/lib/assign.js", "../base/ind2sub/lib/main.js", "../base/ind2sub/lib/index.js", "../base/max-view-buffer-index/lib/main.js", "../base/max-view-buffer-index/lib/index.js", "../base/maybe-broadcast-array/lib/main.js", "../base/maybe-broadcast-array/lib/index.js", "../base/meta-data-props/lib/main.js", "../base/meta-data-props/lib/index.js", "../base/min-view-buffer-index/lib/main.js", "../base/min-view-buffer-index/lib/index.js", "../base/next-cartesian-index/lib/assign.js", "../base/next-cartesian-index/lib/main.js", "../base/next-cartesian-index/lib/index.js", "../base/nonsingleton-dimensions/lib/main.js", "../base/nonsingleton-dimensions/lib/index.js", "../base/nullary-loop-interchange-order/lib/sort2ins.js", "../base/nullary-loop-interchange-order/lib/main.js", "../base/nullary-loop-interchange-order/lib/index.js", "../base/nullary-tiling-block-size/lib/defaults.js", "../base/nullary-tiling-block-size/lib/main.js", "../base/nullary-tiling-block-size/lib/index.js", "../base/nullary/lib/2d_blocked_accessors.js", "../base/nullary/lib/3d_blocked_accessors.js", "../base/nullary/lib/4d_blocked_accessors.js", "../base/nullary/lib/5d_blocked_accessors.js", "../base/nullary/lib/6d_blocked_accessors.js", "../base/nullary/lib/7d_blocked_accessors.js", "../base/nullary/lib/8d_blocked_accessors.js", "../base/nullary/lib/9d_blocked_accessors.js", "../base/nullary/lib/10d_blocked_accessors.js", "../base/nullary/lib/2d_blocked.js", "../base/nullary/lib/3d_blocked.js", "../base/nullary/lib/4d_blocked.js", "../base/nullary/lib/5d_blocked.js", "../base/nullary/lib/6d_blocked.js", "../base/nullary/lib/7d_blocked.js", "../base/nullary/lib/8d_blocked.js", "../base/nullary/lib/9d_blocked.js", "../base/nullary/lib/10d_blocked.js", "../base/nullary/lib/0d_accessors.js", "../base/nullary/lib/1d_accessors.js", "../base/nullary/lib/2d_accessors.js", "../base/nullary/lib/3d_accessors.js", "../base/nullary/lib/4d_accessors.js", "../base/nullary/lib/5d_accessors.js", "../base/nullary/lib/6d_accessors.js", "../base/nullary/lib/7d_accessors.js", "../base/nullary/lib/8d_accessors.js", "../base/nullary/lib/9d_accessors.js", "../base/nullary/lib/10d_accessors.js", "../base/nullary/lib/nd_accessors.js", "../base/nullary/lib/0d.js", "../base/nullary/lib/1d.js", "../base/nullary/lib/2d.js", "../base/nullary/lib/3d.js", "../base/nullary/lib/4d.js", "../base/nullary/lib/5d.js", "../base/nullary/lib/6d.js", "../base/nullary/lib/7d.js", "../base/nullary/lib/8d.js", "../base/nullary/lib/9d.js", "../base/nullary/lib/10d.js", "../base/nullary/lib/nd.js", "../base/nullary/lib/main.js", "../base/nullary/lib/index.js", "../output-dtype-policies/lib/policies.json", "../output-dtype-policies/lib/main.js", "../output-dtype-policies/lib/enum.js", "../output-dtype-policies/lib/assign.js", "../output-dtype-policies/lib/index.js", "../base/output-policy-enum2str/lib/main.js", "../base/output-policy-enum2str/lib/index.js", "../base/output-policy-str2enum/lib/main.js", "../base/output-policy-str2enum/lib/index.js", "../base/output-policy-resolve-enum/lib/main.js", "../base/output-policy-resolve-enum/lib/index.js", "../base/output-policy-resolve-str/lib/main.js", "../base/output-policy-resolve-str/lib/index.js", "../base/prepend-singleton-dimensions/lib/main.js", "../base/prepend-singleton-dimensions/lib/index.js", "../base/remove-singleton-dimensions/lib/main.js", "../base/remove-singleton-dimensions/lib/index.js", "../base/reverse/lib/main.js", "../base/reverse/lib/index.js", "../base/serialize-meta-data/lib/main.js", "../base/serialize-meta-data/lib/polyfill.js", "../base/serialize-meta-data/lib/index.js", "../base/singleton-dimensions/lib/main.js", "../base/singleton-dimensions/lib/index.js", "../base/slice-assign/lib/main.js", "../base/slice-assign/lib/index.js", "../base/slice-dimension/lib/main.js", "../base/slice-dimension/lib/index.js", "../base/slice-dimension-from/lib/main.js", "../base/slice-dimension-from/lib/index.js", "../base/slice-dimension-to/lib/main.js", "../base/slice-dimension-to/lib/index.js", "../base/slice-from/lib/main.js", "../base/slice-from/lib/index.js", "../base/slice-to/lib/main.js", "../base/slice-to/lib/index.js", "../base/sub2ind/lib/main.js", "../base/sub2ind/lib/index.js", "../base/to-array/lib/recurse.js", "../base/to-array/lib/main.js", "../base/to-array/lib/index.js", "../base/transpose/lib/main.js", "../base/transpose/lib/index.js", "../base/unary/lib/2d_blocked_accessors.js", "../base/unary/lib/3d_blocked_accessors.js", "../base/unary/lib/4d_blocked_accessors.js", "../base/unary/lib/5d_blocked_accessors.js", "../base/unary/lib/6d_blocked_accessors.js", "../base/unary/lib/7d_blocked_accessors.js", "../base/unary/lib/8d_blocked_accessors.js", "../base/unary/lib/9d_blocked_accessors.js", "../base/unary/lib/10d_blocked_accessors.js", "../base/unary/lib/2d_blocked.js", "../base/unary/lib/3d_blocked.js", "../base/unary/lib/4d_blocked.js", "../base/unary/lib/5d_blocked.js", "../base/unary/lib/6d_blocked.js", "../base/unary/lib/7d_blocked.js", "../base/unary/lib/8d_blocked.js", "../base/unary/lib/9d_blocked.js", "../base/unary/lib/10d_blocked.js", "../base/unary/lib/0d_accessors.js", "../base/unary/lib/1d_accessors.js", "../base/unary/lib/2d_accessors.js", "../base/unary/lib/3d_accessors.js", "../base/unary/lib/4d_accessors.js", "../base/unary/lib/5d_accessors.js", "../base/unary/lib/6d_accessors.js", "../base/unary/lib/7d_accessors.js", "../base/unary/lib/8d_accessors.js", "../base/unary/lib/9d_accessors.js", "../base/unary/lib/10d_accessors.js", "../base/unary/lib/nd_accessors.js", "../base/unary/lib/0d.js", "../base/unary/lib/1d.js", "../base/unary/lib/2d.js", "../base/unary/lib/3d.js", "../base/unary/lib/4d.js", "../base/unary/lib/5d.js", "../base/unary/lib/6d.js", "../base/unary/lib/7d.js", "../base/unary/lib/8d.js", "../base/unary/lib/9d.js", "../base/unary/lib/10d.js", "../base/unary/lib/nd.js", "../base/unary/lib/main.js", "../base/unary/lib/index.js", "../base/unary-by/lib/2d_blocked_accessors.js", "../base/unary-by/lib/3d_blocked_accessors.js", "../base/unary-by/lib/4d_blocked_accessors.js", "../base/unary-by/lib/5d_blocked_accessors.js", "../base/unary-by/lib/6d_blocked_accessors.js", "../base/unary-by/lib/7d_blocked_accessors.js", "../base/unary-by/lib/8d_blocked_accessors.js", "../base/unary-by/lib/9d_blocked_accessors.js", "../base/unary-by/lib/10d_blocked_accessors.js", "../base/unary-by/lib/2d_blocked.js", "../base/unary-by/lib/3d_blocked.js", "../base/unary-by/lib/4d_blocked.js", "../base/unary-by/lib/5d_blocked.js", "../base/unary-by/lib/6d_blocked.js", "../base/unary-by/lib/7d_blocked.js", "../base/unary-by/lib/8d_blocked.js", "../base/unary-by/lib/9d_blocked.js", "../base/unary-by/lib/10d_blocked.js", "../base/unary-by/lib/0d_accessors.js", "../base/unary-by/lib/1d_accessors.js", "../base/unary-by/lib/2d_accessors.js", "../base/unary-by/lib/3d_accessors.js", "../base/unary-by/lib/4d_accessors.js", "../base/unary-by/lib/5d_accessors.js", "../base/unary-by/lib/6d_accessors.js", "../base/unary-by/lib/7d_accessors.js", "../base/unary-by/lib/8d_accessors.js", "../base/unary-by/lib/9d_accessors.js", "../base/unary-by/lib/10d_accessors.js", "../base/unary-by/lib/nd_accessors.js", "../base/unary-by/lib/0d.js", "../base/unary-by/lib/1d.js", "../base/unary-by/lib/2d.js", "../base/unary-by/lib/3d.js", "../base/unary-by/lib/4d.js", "../base/unary-by/lib/5d.js", "../base/unary-by/lib/6d.js", "../base/unary-by/lib/7d.js", "../base/unary-by/lib/8d.js", "../base/unary-by/lib/9d.js", "../base/unary-by/lib/10d.js", "../base/unary-by/lib/nd.js", "../base/unary-by/lib/main.js", "../base/unary-by/lib/index.js", "../base/unary-output-dtype/lib/main.js", "../base/unary-output-dtype/lib/index.js", "../base/zeros/lib/main.js", "../base/zeros/lib/index.js", "../base/zeros-like/lib/main.js", "../base/zeros-like/lib/index.js", "../base/lib/index.js", "../broadcast-array/lib/main.js", "../broadcast-array/lib/index.js", "../dispatch/lib/index_of_types.js", "../dispatch/lib/main.js", "../dispatch/lib/index.js", "../empty/lib/main.js", "../empty/lib/index.js", "../empty-like/lib/main.js", "../empty-like/lib/index.js", "../fancy/lib/re_integer.js", "../fancy/lib/re_subseq.js", "../fancy/lib/prop2slice.0d.js", "../fancy/lib/prop2slice.1d.js", "../fancy/lib/prop2slice.nd.js", "../fancy/lib/has_property.js", "../fancy/lib/get_value.js", "../fancy/lib/error_message.js", "../fancy/lib/error_constructor.js", "../fancy/lib/get_slice.js", "../fancy/lib/get.js", "../fancy/lib/set_value.js", "../min-dtype/lib/main.js", "../min-dtype/lib/index.js", "../from-scalar/lib/main.js", "../from-scalar/lib/index.js", "../fancy/lib/set_slice.js", "../fancy/lib/set.js", "../fancy/lib/main.js", "../fancy/lib/index.js", "../ind2sub/lib/defaults.json", "../ind2sub/lib/validate.js", "../ind2sub/lib/main.js", "../ind2sub/lib/assign.js", "../ind2sub/lib/index.js", "../iter/column-entries/lib/main.js", "../iter/column-entries/lib/index.js", "../iter/columns/lib/main.js", "../iter/columns/lib/index.js", "../iter/entries/lib/main.js", "../iter/entries/lib/index.js", "../iter/indices/lib/main.js", "../iter/indices/lib/index.js", "../iter/matrices/lib/main.js", "../iter/matrices/lib/index.js", "../iter/matrix-entries/lib/main.js", "../iter/matrix-entries/lib/index.js", "../iter/row-entries/lib/main.js", "../iter/row-entries/lib/index.js", "../iter/rows/lib/main.js", "../iter/rows/lib/index.js", "../to-array/lib/main.js", "../to-array/lib/index.js", "../iter/to-array-each/lib/main.js", "../iter/to-array-each/lib/index.js", "../iter/values/lib/main.js", "../iter/values/lib/index.js", "../iter/lib/index.js", "../maybe-broadcast-array/lib/main.js", "../maybe-broadcast-array/lib/index.js", "../next-dtype/lib/next_dtypes.json", "../next-dtype/lib/main.js", "../next-dtype/lib/index.js", "../numel/lib/main.js", "../numel/lib/index.js", "../promotion-rules/lib/promotion_rules.json", "../promotion-rules/lib/main.js", "../promotion-rules/lib/index.js", "../slice/lib/main.js", "../slice/lib/index.js", "../slice-assign/lib/main.js", "../slice-assign/lib/index.js", "../slice-dimension/lib/main.js", "../slice-dimension/lib/index.js", "../slice-dimension-from/lib/main.js", "../slice-dimension-from/lib/index.js", "../slice-dimension-to/lib/main.js", "../slice-dimension-to/lib/index.js", "../sub2ind/lib/defaults.json", "../sub2ind/lib/validate.js", "../sub2ind/lib/main.js", "../sub2ind/lib/index.js", "../zeros/lib/main.js", "../zeros/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) 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// FUNCTIONS //\n\n/**\n* Generates a stride array from an array shape (row-major).\n*\n* @private\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {Array} array strides\n*/\nfunction rowmajor( shape ) {\n\tvar ndims;\n\tvar out;\n\tvar s;\n\tvar i;\n\n\tndims = shape.length;\n\tout = [];\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tout.push( 0 );\n\t}\n\ts = 1;\n\tfor ( i = ndims-1; i >= 0; i-- ) {\n\t\tout[ i ] = s;\n\t\ts *= shape[ i ];\n\t}\n\treturn out;\n}\n\n/**\n* Generates a stride array from an array shape (column-major).\n*\n* @private\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {Array} array strides\n*/\nfunction columnmajor( shape ) {\n\tvar out;\n\tvar s;\n\tvar i;\n\n\tout = [];\n\ts = 1;\n\tfor ( i = 0; i < shape.length; i++ ) {\n\t\tout.push( s );\n\t\ts *= shape[ i ];\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Generates a stride array from an array shape.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @returns {Array} array strides\n*\n* @example\n* var s = shape2strides( [ 3, 2 ], 'row-major' );\n* // returns [ 2, 1 ]\n*\n* s = shape2strides( [ 3, 2 ], 'column-major' );\n* // returns [ 1, 3 ]\n*/\nfunction shape2strides( shape, order ) {\n\tif ( order === 'column-major' ) {\n\t\treturn columnmajor( shape );\n\t}\n\treturn rowmajor( shape );\n}\n\n\n// EXPORTS //\n\nmodule.exports = shape2strides;\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// FUNCTIONS //\n\n/**\n* Generates a stride array from an array shape (row-major).\n*\n* @private\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {(Array|TypedArray|Object)} out - output object\n* @returns {(Array|TypedArray|Object)} array strides\n*/\nfunction rowmajor( shape, out ) {\n\tvar ndims;\n\tvar s;\n\tvar i;\n\n\tndims = shape.length;\n\ts = 1;\n\tfor ( i = ndims-1; i >= 0; i-- ) {\n\t\tout[ i ] = s;\n\t\ts *= shape[ i ];\n\t}\n\treturn out;\n}\n\n/**\n* Generates a stride array from an array shape (column-major).\n*\n* @private\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {(Array|TypedArray|Object)} out - output object\n* @returns {(Array|TypedArray|Object)} array strides\n*/\nfunction columnmajor( shape, out ) {\n\tvar s;\n\tvar i;\n\n\ts = 1;\n\tfor ( i = 0; i < shape.length; i++ ) {\n\t\tout[ i ] = s;\n\t\ts *= shape[ i ];\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Generates a stride array from an array shape.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @param {(Array|TypedArray|Object)} out - output object\n* @returns {(Array|TypedArray|Object)} array strides\n*\n* @example\n* var strides = [ 0, 0 ];\n*\n* var out = shape2strides( [ 3, 2 ], 'row-major', strides );\n* // returns [ 2, 1 ]\n*\n* var bool = ( out === strides );\n* // returns true\n*\n* out = shape2strides( [ 3, 2 ], 'column-major', strides );\n* // returns [ 1, 3 ]\n*/\nfunction shape2strides( shape, order, out ) {\n\tif ( order === 'column-major' ) {\n\t\treturn columnmajor( shape, out );\n\t}\n\treturn rowmajor( shape, out );\n}\n\n\n// EXPORTS //\n\nmodule.exports = shape2strides;\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 stride array from an array shape.\n*\n* @module @stdlib/ndarray/base/shape2strides\n*\n* @example\n* var shape2strides = require( '@stdlib/ndarray/base/shape2strides' );\n*\n* var strides = shape2strides( [ 3, 2 ], 'row-major' );\n* // returns [ 2, 1 ]\n*\n* strides = shape2strides( [ 3, 2 ], 'column-major' );\n* // returns [ 1, 3 ]\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// MAIN //\n\n/**\n* Returns the index offset which specifies the location of the first indexed value in a multidimensional array based on a stride array.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @returns {NonNegativeInteger} offset - offset\n*\n* @example\n* var shape = [ 2, 3, 10 ];\n* var strides = [ 30, -10, 1 ];\n*\n* var offset = strides2offset( shape, strides );\n* // returns 20\n*/\nfunction strides2offset( shape, strides ) {\n\tvar offset;\n\tvar ndims;\n\tvar i;\n\n\tndims = shape.length;\n\toffset = 0;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tif ( strides[ i ] < 0 ) {\n\t\t\t// Note that, since the stride is negative, this operation increments, not decrements, the offset...\n\t\t\toffset -= strides[ i ] * ( shape[ i ]-1 );\n\t\t}\n\t}\n\treturn offset;\n}\n\n\n// EXPORTS //\n\nmodule.exports = strides2offset;\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 index offset which specifies the location of the first indexed value in a multidimensional array based on a stride array.\n*\n* @module @stdlib/ndarray/base/strides2offset\n*\n* @example\n* var strides2offset = require( '@stdlib/ndarray/base/strides2offset' );\n*\n* var shape = [ 2, 3, 10 ];\n* var strides = [ 30, -10, 1 ];\n*\n* var offset = strides2offset( shape, strides );\n* // returns 20\n*/\n\n// MODULES //\n\nvar strides2offset = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = strides2offset;\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 abs = require( '@stdlib/math/base/special/abs' );\n\n\n// MAIN //\n\n/**\n* Determines the order of a multidimensional array based on a provided stride array.\n*\n* @param {IntegerArray} strides - stride array\n* @returns {integer} order\n*\n* @example\n* var strides2order = require( '@stdlib/ndarray/base/strides2order' );\n*\n* var order = strides2order( [ 2, 1 ] );\n* // returns 1\n*\n* order = strides2order( [ 1, 2 ] );\n* // returns 2\n*\n* order = strides2order( [ 1, 1, 1 ] );\n* // returns 3\n*\n* order = strides2order( [ 2, 3, 1 ] );\n* // returns 0\n*/\nfunction strides2order( strides ) {\n\tvar column;\n\tvar ndims;\n\tvar row;\n\tvar s1;\n\tvar s2;\n\tvar i;\n\n\tndims = strides.length;\n\tif ( ndims === 0 ) {\n\t\treturn 0|0; // 'none'\n\t}\n\tcolumn = true;\n\trow = true;\n\n\ts1 = abs( strides[ 0 ] );\n\tfor ( i = 1; i < ndims; i++ ) {\n\t\ts2 = abs( strides[ i ] );\n\t\tif ( column && s2 < s1 ) {\n\t\t\tcolumn = false;\n\t\t} else if ( row && s2 > s1 ) {\n\t\t\trow = false;\n\t\t}\n\t\tif ( row || column ) {\n\t\t\ts1 = s2;\n\t\t} else {\n\t\t\treturn 0|0; // 'none'\n\t\t}\n\t}\n\tif ( row && column ) {\n\t\treturn 3|0; // 'both'\n\t}\n\tif ( row ) {\n\t\treturn 1|0; // 'row-major'\n\t}\n\treturn 2|0; // 'column-major'\n}\n\n\n// EXPORTS //\n\nmodule.exports = strides2order;\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 order of a multidimensional array based on a provided stride array.\n*\n* @module @stdlib/ndarray/base/strides2order\n*\n* @example\n* var strides2order = require( '@stdlib/ndarray/base/strides2order' );\n*\n* var order = strides2order( [ 2, 1 ] );\n* // returns 1\n*\n* order = strides2order( [ 1, 2 ] );\n* // returns 2\n*\n* order = strides2order( [ 1, 1, 1 ] );\n* // returns 3\n*\n* order = strides2order( [ 2, 3, 1 ] );\n* // returns 0\n*/\n\n// MODULES //\n\nvar strides2order = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = strides2order;\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* Returns the number of elements in an array.\n*\n* @param {(NonNegativeIntegerArray|EmptyArray)} shape - array shape\n* @returns {NonNegativeInteger} number of elements\n*\n* @example\n* var n = numel( [ 3, 3, 3 ] );\n* // returns 27\n*/\nfunction numel( shape ) {\n\tvar ndims;\n\tvar n;\n\tvar i;\n\n\tndims = shape.length;\n\tif ( ndims === 0 ) {\n\t\treturn 0;\n\t}\n\tn = 1;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tn *= shape[ i ];\n\t}\n\treturn n;\n}\n\n\n// EXPORTS //\n\nmodule.exports = numel;\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 number of elements in an array.\n*\n* @module @stdlib/ndarray/base/numel\n*\n* @example\n* var numel = require( '@stdlib/ndarray/base/numel' );\n*\n* var n = numel( [ 3, 3, 3 ] );\n* // returns 27\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "[\n\t\"row-major\",\n\t\"column-major\"\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 ORDERS = require( './orders.json' );\n\n\n// MAIN //\n\n/**\n* Returns a list of ndarray orders.\n*\n* @returns {StringArray} list of ndarray orders\n*\n* @example\n* var list = orders();\n* // returns [ 'row-major', 'column-major' ]\n*/\nfunction orders() {\n\treturn ORDERS.slice();\n}\n\n\n// EXPORTS //\n\nmodule.exports = orders;\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 an object mapping supported orders to integer values for purposes of C inter-operation.\n*\n* ## Notes\n*\n* - Downstream consumers of this mapping should **not** rely on specific integer values (e.g., `row-major == 1`). Instead, the object should be used in an opaque manner.\n* - The main purpose of this function is JavaScript and C inter-operation of ndarray objects.\n*\n* @returns {Object} object mapping supported orders to integer values\n*\n* @example\n* var table = enumerated();\n* // returns \n*/\nfunction enumerated() {\n\t// NOTE: the following should match the C `orders.h` enumeration!!!!\n\treturn {\n\t\t// Row-major (C-style):\n\t\t'row-major': 1,\n\n\t\t// Column-major (Fortran-style):\n\t\t'column-major': 2\n\t};\n}\n\n\n// EXPORTS //\n\nmodule.exports = enumerated;\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 ndarray orders.\n*\n* @module @stdlib/ndarray/orders\n*\n* @example\n* var orders = require( '@stdlib/ndarray/orders' );\n*\n* var list = orders();\n* // returns [ 'row-major', 'column-major' ]\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar enumeration = require( './enum.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'enum', enumeration );\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 orders = require( './../../../../orders' );\n\n\n// VARIABLES //\n\nvar ORDERS = orders();\nvar len = ORDERS.length;\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is an ndarray order.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is an ndarray order\n*\n* @example\n* var bool = isOrder( 'row-major' );\n* // returns true\n*\n* bool = isOrder( 'column-major' );\n* // returns true\n*\n* bool = isOrder( 'foo' );\n* // returns false\n*/\nfunction isOrder( v ) {\n\tvar i;\n\tfor ( i = 0; i < len; i++ ) {\n\t\tif ( v === ORDERS[ i ] ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nmodule.exports = isOrder;\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* Test whether an input value is an ndarray order.\n*\n* @module @stdlib/ndarray/base/assert/is-order\n*\n* @example\n* var isOrder = require( '@stdlib/ndarray/base/assert/is-order' );\n*\n* var bool = isOrder( 'row-major' );\n* // returns true\n*\n* bool = isOrder( 'column-major' );\n* // returns true\n*\n* bool = isOrder( 'foo' );\n* // returns false\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "{\n \"all\": [\n \"binary\",\n \"complex64\",\n \"complex128\",\n \"float32\",\n \"float64\",\n \"generic\",\n \"int16\",\n \"int32\",\n \"int8\",\n \"uint16\",\n \"uint32\",\n \"uint8\",\n \"uint8c\"\n ],\n \"floating_point\": [\n \"complex64\",\n \"complex128\",\n \"float32\",\n \"float64\"\n ],\n \"real_floating_point\": [\n \"float32\",\n \"float64\"\n ],\n \"complex_floating_point\": [\n \"complex64\",\n \"complex128\"\n ],\n \"integer\": [\n \"int16\",\n \"int32\",\n \"int8\",\n \"uint16\",\n \"uint32\",\n \"uint8\",\n \"uint8c\"\n ],\n \"signed_integer\": [\n \"int16\",\n \"int32\",\n \"int8\"\n ],\n \"unsigned_integer\": [\n \"uint16\",\n \"uint32\",\n \"uint8\",\n \"uint8c\"\n ],\n \"real\": [\n \"float32\",\n \"float64\",\n \"int16\",\n \"int32\",\n \"int8\",\n \"uint16\",\n \"uint32\",\n \"uint8\",\n \"uint8c\"\n ],\n \"numeric\": [\n \"complex64\",\n \"complex128\",\n \"float32\",\n \"float64\",\n \"int16\",\n \"int32\",\n \"int8\",\n \"uint16\",\n \"uint32\",\n \"uint8\",\n \"uint8c\"\n ]\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 ndarray data types.\n*\n* @param {string} [kind] - data type kind\n* @returns {StringArray} list of ndarray data types\n*\n* @example\n* var list = dtypes();\n* // returns [...]\n*\n* @example\n* var list = dtypes( 'floating_point' );\n* // returns [...]\n*/\nfunction dtypes() {\n\tvar out;\n\tif ( arguments.length === 0 ) {\n\t\treturn DTYPES.all.slice();\n\t}\n\tout = DTYPES[ arguments[ 0 ] ];\n\treturn ( out ) ? out.slice() : [];\n}\n\n\n// EXPORTS //\n\nmodule.exports = dtypes;\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/* eslint-disable stdlib/empty-line-before-comment */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns an object mapping supported data type strings to enumeration constants.\n*\n* ## Notes\n*\n* - Downstream consumers of this mapping should **not** rely on specific integer values (e.g., `INT8 == 0`). Instead, the object should be used in an opaque manner.\n* - The main purpose of this function is JavaScript and C inter-operation of ndarray objects. While certain dtypes, such as \"generic\" and \"binary\", have special behavior in JavaScript, they do not have a direct complement in C.\n*\n* @private\n* @returns {Object} object mapping supported dtypes to enumeration constants\n*\n* @example\n* var table = enumeration();\n* // returns \n*/\nfunction enumeration() {\n\t// NOTE: the following should match the C `dtypes.h` enumeration!!!!\n\treturn {\n\t\t// Boolean data types:\n\t\t'bool': 0,\n\n\t\t// Integer data types:\n\t\t'int8': 1,\n\t\t'uint8': 2,\n\t\t'uint8c': 3,\n\t\t'int16': 4,\n\t\t'uint16': 5,\n\t\t'int32': 6,\n\t\t'uint32': 7,\n\t\t'int64': 8,\n\t\t'uint64': 9,\n\t\t// 'int128': 10, // uncomment once supported\n\t\t// 'uint128': 11,\n\t\t// 'int256': 12,\n\t\t// 'uint256': 13,\n\n\t\t// Floating-point data types:\n\t\t// 'float16': 14,\n\t\t// 'bfloat16': 15,\n\t\t'float32': 10,\n\t\t'float64': 11,\n\t\t// 'float128': 18, // uncomment once supported\n\n\t\t// Complex floating-point number data types:\n\t\t'complex64': 12,\n\t\t'complex128': 13,\n\n\t\t// Data type for \"binary\" data (i.e., data stored in a Node.js `Buffer` object):\n\t\t'binary': 14,\n\n\t\t// Data type for \"generic\" JavaScript values (objects):\n\t\t'generic': 15,\n\n\t\t// Define a signaling value which is guaranteed not to be a valid type enumeration value:\n\t\t'notype': 17,\n\n\t\t// Indicate the start of user defined type numbers (leaving room for type growth above):\n\t\t'userdefined_type': 256\n\t};\n}\n\n\n// EXPORTS //\n\nmodule.exports = enumeration;\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 setReadOnly = require( '@stdlib/utils/define-read-only-property' );\nvar objectKeys = require( '@stdlib/utils/keys' );\n\n\n// MAIN //\n\n/**\n* Copies all enumerable own properties from a source object to a target object as enumerable read-only properties.\n*\n* @private\n* @param {Object} target - target object\n* @param {Object} source - source object\n* @returns {Object} modified target object\n*\n* @example\n* var source = {\n* 'beep': 'boop'\n* };\n* var target = {};\n*\n* var out = assign( target, source );\n* // returns \n*\n* var bool = ( out === target );\n* // returns true\n*\n* var v = target.beep;\n* // returns 'boop'\n*/\nfunction assign( target, source ) {\n\tvar keys;\n\tvar k;\n\tvar i;\n\n\tkeys = objectKeys( source );\n\tfor ( i = 0; i < keys.length; i++ ) {\n\t\tk = keys[ i ];\n\t\tsetReadOnly( target, k, source[ k ] );\n\t}\n\treturn target;\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign;\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 ndarray data types.\n*\n* @module @stdlib/ndarray/dtypes\n*\n* @example\n* var dtypes = require( '@stdlib/ndarray/dtypes' );\n*\n* var list = dtypes();\n* // returns [...]\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar enumeration = require( './enum.js' );\nvar assign = require( './assign.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'enum', enumeration );\nassign( main, enumeration() );\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 contains = require( '@stdlib/array/base/assert/contains' ).factory;\nvar dtypes = require( './../../../../dtypes' );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray data type.\n*\n* @name isDataType\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray data type\n*\n* @example\n* var bool = isDataType( 'binary' );\n* // returns true\n*\n* bool = isDataType( 'float32' );\n* // returns true\n*\n* bool = isDataType( 'float64' );\n* // returns true\n*\n* bool = isDataType( 'generic' );\n* // returns true\n*\n* bool = isDataType( 'int16' );\n* // returns true\n*\n* bool = isDataType( 'int32' );\n* // returns true\n*\n* bool = isDataType( 'int8' );\n* // returns true\n*\n* bool = isDataType( 'uint16' );\n* // returns true\n*\n* bool = isDataType( 'uint32' );\n* // returns true\n*\n* bool = isDataType( 'uint8' );\n* // returns true\n*\n* bool = isDataType( 'uint8c' );\n* // returns true\n*\n* bool = isDataType( 'foo' );\n* // returns false\n*/\nvar isDataType = contains( dtypes() );\n\n\n// EXPORTS //\n\nmodule.exports = isDataType;\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* Test whether an input value is a supported ndarray data type.\n*\n* @module @stdlib/ndarray/base/assert/is-data-type\n*\n* @example\n* var isDataType = require( '@stdlib/ndarray/base/assert/is-data-type' );\n*\n* var bool = isDataType( 'binary' );\n* // returns true\n*\n* bool = isDataType( 'float32' );\n* // returns true\n*\n* bool = isDataType( 'float64' );\n* // returns true\n*\n* bool = isDataType( 'generic' );\n* // returns true\n*\n* bool = isDataType( 'int16' );\n* // returns true\n*\n* bool = isDataType( 'int32' );\n* // returns true\n*\n* bool = isDataType( 'int8' );\n* // returns true\n*\n* bool = isDataType( 'uint16' );\n* // returns true\n*\n* bool = isDataType( 'uint32' );\n* // returns true\n*\n* bool = isDataType( 'uint8' );\n* // returns true\n*\n* bool = isDataType( 'uint8c' );\n* // returns true\n*\n* bool = isDataType( 'foo' );\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) 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* Computes the minimum and maximum linear indices in an underlying data buffer which are accessible to an array view.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @returns {Array} linear indices\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ 10, 1 ];\n* var offset = 10;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 10, 109 ]\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ -10, -1 ];\n* var offset = 99;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 0, 99 ]\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ 1, 10 ];\n* var offset = 10;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 10, 109 ]\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ -1, -10 ];\n* var offset = 99;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 0, 99 ]\n*/\nfunction minmaxViewBufferIndex( shape, strides, offset ) {\n\tvar ndims;\n\tvar min;\n\tvar max;\n\tvar s;\n\tvar i;\n\n\tndims = shape.length;\n\tmin = offset;\n\tmax = offset;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tif ( shape[ i ] === 0 ) {\n\t\t\treturn [ offset, offset ];\n\t\t}\n\t\ts = strides[ i ];\n\t\tif ( s > 0 ) {\n\t\t\tmax += s * ( shape[i]-1 );\n\t\t} else if ( s < 0 ) {\n\t\t\tmin += s * ( shape[i]-1 ); // decrements min\n\t\t}\n\t}\n\treturn [ min, max ];\n}\n\n\n// EXPORTS //\n\nmodule.exports = minmaxViewBufferIndex;\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* Computes the minimum and maximum linear indices in an underlying data buffer which are accessible to an array view and assigns results to a provided output array.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @param {(Array|TypedArray|Object)} out - output object\n* @returns {(Array|TypedArray|Object)} linear indices\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ 10, 1 ];\n* var offset = 10;\n*\n* var out = [ 0, 0 ];\n* var idx = minmaxViewBufferIndex( shape, strides, offset, out );\n* // returns [ 10, 109 ]\n*\n* var bool = ( idx === out );\n* // returns true\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ -10, -1 ];\n* var offset = 99;\n*\n* var out = [ 0, 0 ];\n* var idx = minmaxViewBufferIndex( shape, strides, offset, out );\n* // returns [ 0, 99 ]\n*\n* var bool = ( idx === out );\n* // returns true\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ 1, 10 ];\n* var offset = 10;\n*\n* var out = [ 0, 0 ];\n* var idx = minmaxViewBufferIndex( shape, strides, offset, out );\n* // returns [ 10, 109 ]\n*\n* var bool = ( idx === out );\n* // returns true\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ -1, -10 ];\n* var offset = 99;\n*\n* var out = [ 0, 0 ];\n* var idx = minmaxViewBufferIndex( shape, strides, offset, out );\n* // returns [ 0, 99 ]\n*\n* var bool = ( idx === out );\n* // returns true\n*/\nfunction minmaxViewBufferIndex( shape, strides, offset, out ) {\n\tvar ndims;\n\tvar min;\n\tvar max;\n\tvar s;\n\tvar i;\n\n\tndims = shape.length;\n\tmin = offset;\n\tmax = offset;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tif ( shape[ i ] === 0 ) {\n\t\t\tout[ 0 ] = offset;\n\t\t\tout[ 1 ] = offset;\n\t\t\treturn out;\n\t\t}\n\t\ts = strides[ i ];\n\t\tif ( s > 0 ) {\n\t\t\tmax += s * ( shape[i]-1 );\n\t\t} else if ( s < 0 ) {\n\t\t\tmin += s * ( shape[i]-1 ); // decrements min\n\t\t}\n\t}\n\tout[ 0 ] = min;\n\tout[ 1 ] = max;\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = minmaxViewBufferIndex;\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* Compute the minimum and maximum linear indices in an underlying data buffer which are accessible to an array view.\n*\n* @module @stdlib/ndarray/base/minmax-view-buffer-index\n*\n* @example\n* var minmaxViewBufferIndex = require( '@stdlib/ndarray/base/minmax-view-buffer-index' );\n*\n* var shape = [ 10, 10 ];\n* var strides = [ 10, 1 ];\n* var offset = 10;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 10, 109 ]\n*\n* @example\n* var minmaxViewBufferIndex = require( '@stdlib/ndarray/base/minmax-view-buffer-index' );\n*\n* var shape = [ 10, 10 ];\n* var strides = [ -10, -1 ];\n* var offset = 99;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 0, 99 ]\n*\n* @example\n* var minmaxViewBufferIndex = require( '@stdlib/ndarray/base/minmax-view-buffer-index' );\n*\n* var shape = [ 10, 10 ];\n* var strides = [ 1, 10 ];\n* var offset = 10;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 10, 109 ]\n*\n* @example\n* var minmaxViewBufferIndex = require( '@stdlib/ndarray/base/minmax-view-buffer-index' );\n*\n* var shape = [ 10, 10 ];\n* var strides = [ -1, -10 ];\n* var offset = 99;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 0, 99 ]\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 minmax = require( './../../../../base/minmax-view-buffer-index' );\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if a buffer length is compatible with provided ndarray meta data.\n*\n* @param {NonNegativeInteger} len - buffer length\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @returns {boolean} boolean indicating if a buffer length is compatible\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var bool = isBufferLengthCompatible( 4, shape, strides, offset );\n* // returns true\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 2;\n*\n* var bool = isBufferLengthCompatible( 4, shape, strides, offset );\n* // returns false\n*/\nfunction isBufferLengthCompatible( len, shape, strides, offset ) {\n\t// Determine the minimum and maximum linear indices which are accessible by the array view:\n\tvar buf = minmax( shape, strides, offset );\n\n\t// If the indices are \"inbounds\", then the buffer length is compatible:\n\treturn ( buf[ 0 ] >= 0 && buf[ 1 ] < len );\n}\n\n\n// EXPORTS //\n\nmodule.exports = isBufferLengthCompatible;\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 boolean indicating if a buffer length is compatible with provided ndarray meta data.\n*\n* @module @stdlib/ndarray/base/assert/is-buffer-length-compatible\n*\n* @example\n* var isBufferLengthCompatible = require( '@stdlib/ndarray/base/assert/is-buffer-length-compatible' );\n*\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var bool = isBufferLengthCompatible( 4, shape, strides, offset );\n* // returns true\n*\n* @example\n* var isBufferLengthCompatible = require( '@stdlib/ndarray/base/assert/is-buffer-length-compatible' );\n*\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 2;\n*\n* var bool = isBufferLengthCompatible( 4, shape, strides, offset );\n* // returns false\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "{\n\t\"binary\": 1,\n\t\"bool\": 1,\n\t\"complex64\": 8,\n\t\"complex128\": 16,\n\t\"float16\": 2,\n\t\"bfloat16\": 2,\n\t\"float32\": 4,\n\t\"float64\": 8,\n\t\"float128\": 16,\n\t\"generic\": null,\n\t\"int8\": 1,\n\t\"int16\": 2,\n\t\"int32\": 4,\n\t\"int64\": 8,\n\t\"int128\": 16,\n\t\"int256\": 32,\n\t\"uint8\": 1,\n\t\"uint8c\": 1,\n\t\"uint16\": 2,\n\t\"uint32\": 4,\n\t\"uint64\": 8,\n\t\"uint128\": 16,\n\t\"uint256\": 32\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 BYTES_PER_ELEMENT = require( './bytes_per_element.json' );\n\n\n// MAIN //\n\n/**\n* Returns the number of bytes per element provided an underlying array data type.\n*\n* @param {string} dtype - data type\n* @returns {(NonNegativeInteger|null)} number of bytes per element\n*\n* @example\n* var nbytes = bytesPerElement( 'float64' );\n* // returns 8\n*\n* nbytes = bytesPerElement( 'generic' );\n* // returns null\n*/\nfunction bytesPerElement( dtype ) {\n\treturn BYTES_PER_ELEMENT[ dtype ] || null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = bytesPerElement;\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 number of bytes per element provided an underlying array data type.\n*\n* @module @stdlib/ndarray/base/bytes-per-element\n*\n* @example\n* var bytesPerElement = require( '@stdlib/ndarray/base/bytes-per-element' );\n*\n* var nbytes = bytesPerElement( 'float64' );\n* // returns 8\n*\n* nbytes = bytesPerElement( 'generic' );\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// MAIN //\n\n/**\n* Returns array iteration order.\n*\n* ## Notes\n*\n* - Return value key:\n*\n* - `0`: unordered (i.e., strides of mixed sign; e.g., `[ 9, -3, 1 ]`)\n* - `1`: ordered left-to-right (i.e., all nonnegative strides)\n* - `-1`: ordered right-to-left (i.e., all negative strides)\n*\n* @param {IntegerArray} strides - stride array\n* @returns {integer} iteration order\n*\n* @example\n* var o = iterationOrder( [ 2, 1 ] );\n* // returns 1\n*\n* o = iterationOrder( [ -2, 1 ] );\n* // returns 0\n*\n* o = iterationOrder( [ -2, -1 ] );\n* // returns -1\n*/\nfunction iterationOrder( strides ) {\n\tvar cnt;\n\tvar i;\n\n\tcnt = 0;\n\tfor ( i = 0; i < strides.length; i++ ) {\n\t\tif ( strides[ i ] < 0 ) {\n\t\t\tcnt += 1;\n\t\t}\n\t}\n\tif ( cnt === 0 ) {\n\t\t// All nonnegative strides:\n\t\treturn 1|0; // asm-type annotation\n\t}\n\tif ( cnt === strides.length ) {\n\t\t// All negative strides:\n\t\treturn -1|0; // asm-type annotation\n\t}\n\t// Strides of mixed signs:\n\treturn 0|0; // asm-type annotation\n}\n\n\n// EXPORTS //\n\nmodule.exports = iterationOrder;\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* Given a stride array, determine array iteration order.\n*\n* @module @stdlib/ndarray/base/iteration-order\n*\n* @example\n* var iterationOrder = require( '@stdlib/ndarray/base/iteration-order' );\n*\n* var o = iterationOrder( [ 2, 1 ] );\n* // returns 1\n*\n* o = iterationOrder( [ -2, 1 ] );\n* // returns 0\n*\n* o = iterationOrder( [ -2, -1 ] );\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// MAIN //\n\n/**\n* Determines if an array is column-major contiguous.\n*\n* @private\n* @param {integer} order - **inferred** array order\n* @param {boolean} contiguous - boolean indicating is an array is contiguous\n* @returns {boolean} boolean indicating if an array is column-major contiguous\n*/\nfunction isColumnMajorContiguous( order, contiguous ) {\n\treturn contiguous && ( order === 2 || order === 3 );\n}\n\n\n// EXPORTS //\n\nmodule.exports = isColumnMajorContiguous;\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* Determines if an array is row-major contiguous.\n*\n* @private\n* @param {integer} order - **inferred** array order\n* @param {boolean} contiguous - boolean indicating is an array is contiguous\n* @returns {boolean} boolean indicating if an array is row-major contiguous\n*/\nfunction isRowMajorContiguous( order, contiguous ) {\n\treturn contiguous && ( order === 1 || order === 3 );\n}\n\n\n// EXPORTS //\n\nmodule.exports = isRowMajorContiguous;\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 minmaxViewBufferIndex = require( './../../../base/minmax-view-buffer-index' );\n\n\n// MAIN //\n\n/**\n* Determines if an array is contiguous.\n*\n* @private\n* @param {NonNegativeInteger} len - array length\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @param {integer} iterationOrder - iteration order\n* @returns {boolean} boolean indicating if an array is contiguous\n*/\nfunction isContiguous( len, shape, strides, offset, iterationOrder ) {\n\tvar buf;\n\n\t// If an array does not contain any elements, then no data to store, and, if the array is unordered, adjacent array elements are not guaranteed to be stored next to each other.\n\tif ( len === 0 || iterationOrder === 0 ) {\n\t\treturn false;\n\t}\n\t// Ensure that the array is compatible with a single memory segment:\n\tbuf = minmaxViewBufferIndex( shape, strides, offset );\n\treturn ( len === ( buf[1]-buf[0]+1 ) );\n}\n\n\n// EXPORTS //\n\nmodule.exports = isContiguous;\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* Copies ndarray flags.\n*\n* @private\n* @param {Object} flags - flags\n* @returns {Object} copy of input object\n*/\nfunction copyFlags( flags ) {\n\treturn {\n\t\t'ROW_MAJOR_CONTIGUOUS': flags.ROW_MAJOR_CONTIGUOUS,\n\t\t'COLUMN_MAJOR_CONTIGUOUS': flags.COLUMN_MAJOR_CONTIGUOUS,\n\t\t'READONLY': flags.READONLY\n\t};\n}\n\n\n// EXPORTS //\n\nmodule.exports = copyFlags;\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* Returns an array element located a specified linear view index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the input argument is ignored and, for clarity, should not be provided.\n*\n* @private\n* @param {integer} [idx] - linear view index\n* @returns {*} array element\n*/\nfunction iget( idx ) {\n\t/* eslint-disable no-invalid-this */\n\tvar strides;\n\tvar shape;\n\tvar ndims;\n\tvar ind;\n\tvar s;\n\tvar i;\n\n\tndims = this._ndims;\n\tif ( ndims === 0 ) {\n\t\tif ( this._accessors ) {\n\t\t\treturn this._buffer.get( this._offset );\n\t\t}\n\t\treturn this._buffer[ this._offset ];\n\t}\n\tif ( this._flags.ROW_MAJOR_CONTIGUOUS || this._flags.COLUMN_MAJOR_CONTIGUOUS ) { // eslint-disable-line max-len\n\t\t// Trivial case where we have all positive strides...\n\t\tif ( this._iterationOrder === 1 ) {\n\t\t\tif ( this._accessors ) {\n\t\t\t\treturn this._buffer.get( this._offset+idx );\n\t\t\t}\n\t\t\treturn this._buffer[ this._offset+idx ];\n\t\t}\n\t\t// Trivial case where we have all negative strides...\n\t\tif ( this._iterationOrder === -1 ) {\n\t\t\tif ( this._accessors ) {\n\t\t\t\treturn this._buffer.get( this.offset-idx );\n\t\t\t}\n\t\t\treturn this._buffer[ this._offset-idx ];\n\t\t}\n\t}\n\t// The approach which follows is to resolve a view index to its subscripts and then plug the subscripts into the standard formula for computing the linear index in the underlying data buffer...\n\tshape = this._shape;\n\tstrides = this._strides;\n\tind = this._offset;\n\tif ( this._order === 'column-major' ) {\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\ts = idx % shape[ i ];\n\t\t\tidx -= s;\n\t\t\tidx /= shape[ i ];\n\t\t\tind += s * strides[ i ];\n\t\t}\n\t\tif ( this._accessors ) {\n\t\t\treturn this._buffer.get( ind );\n\t\t}\n\t\treturn this._buffer[ ind ];\n\t}\n\t// Case: row-major\n\tfor ( i = ndims-1; i >= 0; i-- ) {\n\t\ts = idx % shape[ i ];\n\t\tidx -= s;\n\t\tidx /= shape[ i ];\n\t\tind += s * strides[ i ];\n\t}\n\tif ( this._accessors ) {\n\t\treturn this._buffer.get( ind );\n\t}\n\treturn this._buffer[ ind ];\n}\n\n\n// EXPORTS //\n\nmodule.exports = iget;\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* Sets an array element located a specified linear view index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the first, and only, argument should be the value to set.\n*\n* @private\n* @param {integer} [idx] - linear view index\n* @param {*} v - value to set\n* @returns {ndarray} ndarray instance\n*/\nfunction iset( idx, v ) {\n\t/* eslint-disable no-invalid-this */\n\tvar strides;\n\tvar shape;\n\tvar ndims;\n\tvar ind;\n\tvar s;\n\tvar i;\n\n\tndims = this._ndims;\n\tif ( ndims === 0 ) {\n\t\tif ( this._accessors ) {\n\t\t\tthis._buffer.set( idx, this._offset );\n\t\t} else {\n\t\t\tthis._buffer[ this._offset ] = idx;\n\t\t}\n\t\treturn this;\n\t}\n\tif ( this._flags.ROW_MAJOR_CONTIGUOUS || this._flags.COLUMN_MAJOR_CONTIGUOUS ) { // eslint-disable-line max-len\n\t\t// Trivial case where we have all positive strides...\n\t\tif ( this._iterationOrder === 1 ) {\n\t\t\tif ( this._accessors ) {\n\t\t\t\tthis._buffer.set( v, this._offset+idx );\n\t\t\t} else {\n\t\t\t\tthis._buffer[ this._offset+idx ] = v;\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\t// Trivial case where we have all negative strides...\n\t\tif ( this._iterationOrder === -1 ) {\n\t\t\tif ( this._accessors ) {\n\t\t\t\tthis._buffer.set( v, this._offset-idx );\n\t\t\t} else {\n\t\t\t\tthis._buffer[ this._offset-idx ] = v;\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t}\n\t// The approach which follows is to resolve a view index to its subscripts and then plug the subscripts into the standard formula for computing the linear index in the underlying data buffer...\n\tshape = this._shape;\n\tstrides = this._strides;\n\tind = this._offset;\n\tif ( this._order === 'column-major' ) {\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\ts = idx % shape[ i ];\n\t\t\tidx -= s;\n\t\t\tidx /= shape[ i ];\n\t\t\tind += s * strides[ i ];\n\t\t}\n\t\tif ( this._accessors ) {\n\t\t\tthis._buffer.set( v, ind );\n\t\t} else {\n\t\t\tthis._buffer[ ind ] = v;\n\t\t}\n\t\treturn this;\n\t}\n\t// Case: row-major\n\tfor ( i = ndims-1; i >= 0; i-- ) {\n\t\ts = idx % shape[ i ];\n\t\tidx -= s;\n\t\tidx /= shape[ i ];\n\t\tind += s * strides[ i ];\n\t}\n\tif ( this._accessors ) {\n\t\tthis._buffer.set( v, ind );\n\t} else {\n\t\tthis._buffer[ ind ] = v;\n\t}\n\treturn this;\n}\n\n\n// EXPORTS //\n\nmodule.exports = iset;\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* Sets an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @private\n* @param {...integer} [idx] - indices\n* @param {*} v - value to set\n* @returns {ndarray} ndarray instance\n*/\nfunction set() {\n\t/* eslint-disable no-invalid-this */\n\tvar idx;\n\tvar i;\n\n\tidx = this._offset;\n\tfor ( i = 0; i < arguments.length-1; i++ ) {\n\t\tidx += this._strides[ i ] * arguments[ i ];\n\t}\n\tif ( this._accessors ) {\n\t\tthis._buffer.set( arguments[ i ], idx );\n\t} else {\n\t\tthis._buffer[ idx ] = arguments[ i ];\n\t}\n\treturn this;\n}\n\n\n// EXPORTS //\n\nmodule.exports = set;\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* Returns an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @private\n* @param {...integer} idx - indices\n* @returns {*} array element\n*/\nfunction get() {\n\t/* eslint-disable no-invalid-this */\n\tvar idx;\n\tvar i;\n\n\tidx = this._offset;\n\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\tidx += this._strides[ i ] * arguments[ i ];\n\t}\n\tif ( this._accessors ) {\n\t\treturn this._buffer.get( idx );\n\t}\n\treturn this._buffer[ idx ];\n}\n\n\n// EXPORTS //\n\nmodule.exports = get;\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 real = require( '@stdlib/complex/real' );\nvar imag = require( '@stdlib/complex/imag' );\n\n\n// MAIN //\n\n/**\n* Serializes an ndarray as a JSON object.\n*\n* ## Notes\n*\n* - The method does **not** serialize data outside of the buffer region defined by the array configuration.\n*\n* @private\n* @returns {Object} JSON representation\n*/\nfunction toJSON() {\n\t/* eslint-disable no-invalid-this */\n\tvar out;\n\tvar len;\n\tvar v;\n\tvar i;\n\n\tlen = this._length;\n\n\t// Build an object containing all ndarray properties needed to revive a serialized ndarray...\n\tout = {};\n\tout.type = 'ndarray';\n\tout.dtype = this.dtype;\n\tout.flags = {\n\t\t'READONLY': this._flags.READONLY\n\t};\n\tout.order = this._order;\n\tout.shape = this._shape.slice();\n\tout.strides = this._strides.slice();\n\n\t// Flip the signs of negative strides:\n\tfor ( i = 0; i < len; i++ ) {\n\t\tif ( out.strides[ i ] < 0 ) {\n\t\t\tout.strides[ i ] *= -1;\n\t\t}\n\t}\n\t// Cast data to generic array...\n\tout.data = [];\n\tif ( out.dtype === 'complex64' || out.dtype === 'complex128' ) {\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tv = this.iget( i );\n\t\t\tout.data.push( real( v ), imag( v ) );\n\t\t}\n\t} else {\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tout.data.push( this.iget( i ) );\n\t\t}\n\t}\n\treturn out;\n\n\t/* eslint-enable no-invalid-this */\n}\n\n\n// EXPORTS //\n\nmodule.exports = toJSON;\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 replace = require( '@stdlib/string/replace' );\nvar real = require( '@stdlib/complex/real' );\nvar imag = require( '@stdlib/complex/imag' );\n\n\n// VARIABLES //\n\nvar CTORS = {\n\t'int8': 'new Int8Array( [ {{data}} ] )',\n\t'uint8': 'new Uint8Array( [ {{data}} ] )',\n\t'uint8c': 'new Uint8ClampedArray( [ {{data}} ] )',\n\t'int16': 'new Int16Array( [ {{data}} ] )',\n\t'uint16': 'new Uint16Array( [ {{data}} ] )',\n\t'int32': 'new Int32Array( [ {{data}} ] )',\n\t'uint32': 'new Uint32Array( [ {{data}} ] )',\n\t'float32': 'new Float32Array( [ {{data}} ] )',\n\t'float64': 'new Float64Array( [ {{data}} ] )',\n\t'generic': '[ {{data}} ]',\n\t'binary': 'new Buffer( [ {{data}} ] )',\n\t'complex64': 'new Complex64Array( [ {{data}} ] )',\n\t'complex128': 'new Complex128Array( [ {{data}} ] )'\n};\n\n\n// MAIN //\n\n/**\n* Serializes an ndarray as a string.\n*\n* ## Notes\n*\n* - The method does **not** serialize data outside of the buffer region defined by the array configuration.\n*\n* @private\n* @returns {string} string representation\n*/\nfunction toString() { // eslint-disable-line stdlib/no-redeclare\n\t/* eslint-disable no-invalid-this */\n\tvar buffer;\n\tvar ndims;\n\tvar ctor;\n\tvar str;\n\tvar dt;\n\tvar v;\n\tvar i;\n\n\tndims = this._shape.length;\n\tdt = this._dtype;\n\n\t// Function to invoke to create an ndarray:\n\tstr = 'ndarray( \\''+dt+'\\', ';\n\n\t// Data buffer parameter...\n\tbuffer = '';\n\tif ( this._length <= 100 ) {\n\t\tif ( dt === 'complex64' || dt === 'complex128' ) {\n\t\t\tfor ( i = 0; i < this._length; i++ ) {\n\t\t\t\tv = this.iget( i );\n\t\t\t\tbuffer += real( v ) + ', ' + imag( v );\n\t\t\t\tif ( i < this._length-1 ) {\n\t\t\t\t\tbuffer += ', ';\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i = 0; i < this._length; i++ ) {\n\t\t\t\tbuffer += this.iget( i );\n\t\t\t\tif ( i < this._length-1 ) {\n\t\t\t\t\tbuffer += ', ';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// First three values...\n\t\tif ( dt === 'complex64' || dt === 'complex128' ) {\n\t\t\tfor ( i = 0; i < 3; i++ ) {\n\t\t\t\tv = this.iget( i );\n\t\t\t\tbuffer += real( v ) + ', ' + imag( v );\n\t\t\t\tif ( i < 2 ) {\n\t\t\t\t\tbuffer += ', ';\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i = 0; i < 3; i++ ) {\n\t\t\t\tbuffer += this.iget( i );\n\t\t\t\tif ( i < 2 ) {\n\t\t\t\t\tbuffer += ', ';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tbuffer += ', ..., ';\n\n\t\t// Last three values...\n\t\tif ( dt === 'complex64' || dt === 'complex128' ) {\n\t\t\tfor ( i = 2; i >= 0; i-- ) {\n\t\t\t\tv = this.iget( this._length-1-i );\n\t\t\t\tbuffer += real( v ) + ', ' + imag( v );\n\t\t\t\tif ( i > 0 ) {\n\t\t\t\t\tbuffer += ', ';\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i = 2; i >= 0; i-- ) {\n\t\t\t\tbuffer += this.iget( this._length-1-i );\n\t\t\t\tif ( i > 0 ) {\n\t\t\t\t\tbuffer += ', ';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tctor = CTORS[ this.dtype ];\n\tstr += replace( ctor, '{{data}}', buffer );\n\tstr += ', ';\n\n\t// Array shape...\n\tif ( ndims === 0 ) {\n\t\tstr += '[]';\n\t} else {\n\t\tstr += '[ ' + this._shape.join( ', ' ) + ' ]';\n\t}\n\tstr += ', ';\n\n\t// Stride array...\n\tstr += '[ ';\n\tif ( ndims === 0 ) {\n\t\tstr += '0';\n\t} else {\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( this._strides[ i ] < 0 ) {\n\t\t\t\tstr += -this._strides[ i ];\n\t\t\t} else {\n\t\t\t\tstr += this._strides[ i ];\n\t\t\t}\n\t\t\tif ( i < ndims-1 ) {\n\t\t\t\tstr += ', ';\n\t\t\t}\n\t\t}\n\t}\n\tstr += ' ]';\n\tstr += ', ';\n\n\t// Buffer offset:\n\tstr += '0';\n\tstr += ', ';\n\n\t// Order:\n\tstr += '\\'' + this._order + '\\'';\n\n\t// Close the function call:\n\tstr += ' )';\n\treturn str;\n\n\t/* eslint-enable no-invalid-this */\n}\n\n\n// EXPORTS //\n\nmodule.exports = toString;\n", "[\n\t\"throw\",\n \"normalize\",\n\t\"clamp\",\n\t\"wrap\"\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 MODES = require( './modes.json' );\n\n\n// MAIN //\n\n/**\n* Returns a list of ndarray index modes.\n*\n* @returns {StringArray} list of ndarray index modes\n*\n* @example\n* var list = modes();\n* // returns [ 'throw', 'normalize', 'clamp', 'wrap' ]\n*/\nfunction modes() {\n\treturn MODES.slice();\n}\n\n\n// EXPORTS //\n\nmodule.exports = modes;\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 an object mapping supported index modes to integer values for purposes of C inter-operation.\n*\n* ## Notes\n*\n* - Downstream consumers of this mapping should **not** rely on specific integer values (e.g., `throw == 1`). Instead, the object should be used in an opaque manner.\n* - The main purpose of this function is JavaScript and C inter-operation of ndarray objects.\n*\n* @returns {Object} object mapping supported index modes to integer values\n*\n* @example\n* var table = enumerated();\n* // returns \n*/\nfunction enumerated() {\n\t// NOTE: the following should match the C `index_modes.h` enumeration!!!!\n\treturn {\n\t\t'throw': 1,\n\t\t'clamp': 2,\n\t\t'wrap': 3,\n\t\t'normalize': 4\n\t};\n}\n\n\n// EXPORTS //\n\nmodule.exports = enumerated;\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 ndarray index modes.\n*\n* @module @stdlib/ndarray/index-modes\n*\n* @example\n* var modes = require( '@stdlib/ndarray/index-modes' );\n*\n* var list = modes();\n* // returns [ 'throw', 'normalize', 'clamp', 'wrap' ]\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar modes = require( './main.js' );\nvar enumeration = require( './enum.js' );\n\n\n// MAIN //\n\nsetReadOnly( modes, 'enum', enumeration );\n\n\n// EXPORTS //\n\nmodule.exports = modes;\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 IS_LITTLE_ENDIAN = require( '@stdlib/assert/is-little-endian' );\nvar ArrayBuffer = require( '@stdlib/array/buffer' );\nvar DataView = require( '@stdlib/array/dataview' );\nvar BigInt = require( '@stdlib/bigint/ctor' );\nvar dtypes = require( './../../../dtypes' ).enum;\nvar orders = require( './../../../orders' ).enum;\nvar modes = require( './../../../index-modes' ).enum;\n\n\n// VARIABLES //\n\nvar DTYPES = dtypes();\nvar ORDERS = orders();\nvar MODES = modes();\n\n\n// FUNCTIONS //\n\n/**\n* Serializes ndarray meta data to a `DataView`.\n*\n* ## Notes\n*\n* - This function takes into account ndarray-like objects which may support index modes.\n*\n* - This function defaults to returning cached serialized meta data. To force serialization, set the private `__meta_dataview__` property to `null`.\n*\n* - Serialization is performed according to host byte order (endianness).\n*\n* - Meta data format:\n*\n* ```text\n* | endianness (1 byte) | (2 bytes) | (8 bytes) | (ndims*8 bytes) | (ndims*8 bytes) | (8 bytes) | (1 byte) | (1 byte) | (8 bytes) | (nsubmodes*1 bytes) | (4 bytes) |\n* ```\n*\n* which translates to the following `ArrayBuffer` layout:\n*\n* ```text\n* ArrayBuffer[\n* [int8],\n* [int16],\n* [int64],\n* [ndims*int64],\n* [ndims*int64],\n* [int64],\n* [int8],\n* [int8],\n* [int64],\n* [nsubmodes*int8],\n* [int32]\n* ]\n* ```\n*\n* where `strides` and `offset` are in units of bytes.\n*\n* - If the endianness is `1`, the byte order is little endian. If the endianness is `0`, the byte order is big endian.\n*\n* - Buffer length:\n*\n* ```text\n* 1 + 2 + 8 + (ndims*8) + (ndims*8) + 8 + 1 + 1 + 8 + (nsubmodes*1) + 4 = 33 + (ndims*16) + nsubmodes\n* ```\n*\n* For example, consider a three-dimensional ndarray with one subscript index mode (submode):\n*\n* ```text\n* 33 + (3*16) + 1 = 82 bytes\n* ```\n*\n* - Views:\n*\n* - endianness: `Int8Array( buf, 0, 1 )`\n* - dtype: `Int16Array( buf, 1, 1 )`\n* - ndims: `Int64Array( buf, 3, 1 )`\n* - shape: `Int64Array( buf, 11, ndims )`\n* - strides: `Int64Array( buf, 11+(ndims*8), ndims )`\n* - offset: `Int64Array( buf, 11+(ndims*16), 1 )`\n* - order: `Int8Array( buf, 19+(ndims*16), 1 )`\n* - mode: `Int8Array( buf, 20+(ndims*16), 1 )`\n* - nsubmodes: `Int64Array( buf, 21+(ndims*16), 1 )`\n* - submodes: `Int8Array( buf, 29+(ndims*16), nsubmodes )`\n* - flags: `Int32Array( buf, 29+(ndims*16)+nsubmodes, 1 )`\n*\n* @private\n* @returns {DataView} serialized meta data\n*/\nfunction meta2dataview() {\n\t/* eslint-disable no-invalid-this */\n\tvar nbytes;\n\tvar flgs;\n\tvar len;\n\tvar dt;\n\tvar sh;\n\tvar st;\n\tvar sm;\n\tvar v;\n\tvar m;\n\tvar o;\n\tvar s;\n\tvar N;\n\tvar M;\n\tvar i;\n\n\tm = this._mode || 'throw';\n\tsm = this._submode || [ m ];\n\tN = this._ndims;\n\tM = sm.length;\n\n\t// Compute the amount of memory we need to allocate for storing meta data:\n\tlen = 33 + (N*16) + M;\n\n\t// Check if we've already serialized ndarray meta data and can reuse an already allocated array buffer...\n\tv = this.__meta_dataview__;\n\tif ( v && v.byteLength === len ) { // Note: the byte length check is only a bare minimum sanity check, as cached contents may still be \"stale\" (e.g., shape and/or strides may have changed)\n\t\treturn v;\n\t}\n\t// Allocate raw memory and create a view for interfacing with the allocated memory:\n\tv = new DataView( new ArrayBuffer( len ) );\n\n\t// Retrieve ndarray meta data:\n\tsh = this._shape;\n\tst = this._strides;\n\tdt = this._dtype;\n\tnbytes = this._bytesPerElement;\n\n\t// Endianness: (byteoffset: 0; bytelength: 1)\n\to = 0;\n\tv.setInt8( o, ( IS_LITTLE_ENDIAN ) ? 1 : 0 );\n\n\t// Data type: (byteoffset: 1; bytelength: 2)\n\to += 1;\n\tv.setInt16( o, DTYPES[ dt ], IS_LITTLE_ENDIAN );\n\n\t// Number of dimensions: (byteoffset: 3; bytelength: 8)\n\to += 2;\n\tv.setBigInt64( o, BigInt( N ), IS_LITTLE_ENDIAN );\n\n\t// Shape and strides: (byteoffset: 11 and 11+(ndims*8), respectively; bytelength: ndims*8 for both shape and strides, and, thus, ndims*16 total)\n\ts = N * 8; // stride length between a dimension (shape[i]) and its associated stride\n\to += 8;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tv.setBigInt64( o, BigInt( sh[i] ), IS_LITTLE_ENDIAN );\n\t\tv.setBigInt64( o+s, BigInt( st[i]*nbytes ), IS_LITTLE_ENDIAN );\n\t\to += 8;\n\t}\n\t// Offset: (byteoffset: 11+(ndims*16); bytelength: 8)\n\to += s;\n\tv.setBigInt64( o, BigInt( this._offset*nbytes ), IS_LITTLE_ENDIAN );\n\n\t// Order: (byteoffset: 19+(ndims*16); bytelength: 1)\n\to += 8;\n\tv.setInt8( o, ORDERS[ this._order ] );\n\n\t// Mode: (byteoffset: 20+(ndims*16); bytelength: 1)\n\to += 1;\n\tv.setInt8( o, MODES[ m ] );\n\n\t// Number of submodes: (byteoffset: 21+(ndims*16); bytelength: 8)\n\to += 1;\n\tv.setBigInt64( o, BigInt( M ), IS_LITTLE_ENDIAN );\n\n\t// Submodes: (byteoffset: 29+(ndims*16); bytelength: nsubmodes*1)\n\to += 8;\n\tfor ( i = 0; i < M; i++ ) {\n\t\tv.setInt8( o, MODES[ sm[i] ] );\n\t\to += 1;\n\t}\n\t// Flags: (byteoffset: 29+(ndims*16)+nsubmodes; bytelength: 4)\n\tflgs = 0|0;\n\tflgs |= ( this._flags.READONLY ) ? 4 : 0; // 00000000 00000000 00000000 00000100\n\tv.setInt32( o, flgs, IS_LITTLE_ENDIAN );\n\n\t// Cache the serialized meta data:\n\tthis.__meta_dataview__ = v;\n\n\treturn v;\n\n\t/* eslint-enable no-invalid-this */\n}\n\n\n// EXPORTS //\n\nmodule.exports = meta2dataview;\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 IS_LITTLE_ENDIAN = require( '@stdlib/assert/is-little-endian' );\nvar ArrayBuffer = require( '@stdlib/array/buffer' );\nvar DataView = require( '@stdlib/array/dataview' );\nvar Uint8Array = require( '@stdlib/array/uint8' );\nvar dtypes = require( './../../../dtypes' ).enum;\nvar orders = require( './../../../orders' ).enum;\nvar modes = require( './../../../index-modes' ).enum;\nvar float64ToInt64Bytes = require( '@stdlib/number/float64/base/to-int64-bytes' ).assign;\n\n\n// VARIABLES //\n\nvar DTYPES = dtypes();\nvar ORDERS = orders();\nvar MODES = modes();\n\n\n// FUNCTIONS //\n\n/**\n* Serializes ndarray meta data to a `DataView`.\n*\n* ## Notes\n*\n* - This function takes into account ndarray-like objects which may support index modes.\n*\n* - This function defaults to returning cached serialized meta data. To force serialization, set the private `__meta_dataview__` property to `null`.\n*\n* - Serialization is performed according to host byte order (endianness).\n*\n* - Meta data format:\n*\n* ```text\n* | endianness (1 byte) | (2 bytes) | (8 bytes) | (ndims*8 bytes) | (ndims*8 bytes) | (8 bytes) | (1 byte) | (1 byte) | (8 bytes) | (nsubmodes*1 bytes) | (4 bytes) |\n* ```\n*\n* which translates to the following `ArrayBuffer` layout:\n*\n* ```text\n* ArrayBuffer[\n* [int8],\n* [int16],\n* [int64],\n* [ndims*int64],\n* [ndims*int64],\n* [int64],\n* [int8],\n* [int8],\n* [int64],\n* [nsubmodes*int8],\n* [int32]\n* ]\n* ```\n*\n* where `strides` and `offset` are in units of bytes.\n*\n* - If the endianness is `1`, the byte order is little endian. If the endianness is `0`, the byte order is big endian.\n*\n* - Buffer length:\n*\n* ```text\n* 1 + 2 + 8 + (ndims*8) + (ndims*8) + 8 + 1 + 1 + 8 + (nsubmodes*1) + 4 = 33 + (ndims*16) + nsubmodes\n* ```\n*\n* For example, consider a three-dimensional ndarray with one subscript index mode (submode):\n*\n* ```text\n* 33 + (3*16) + 1 = 82 bytes\n* ```\n*\n* - Views:\n*\n* - endianness: `Int8Array( buf, 0, 1 )`\n* - dtype: `Int16Array( buf, 1, 1 )`\n* - ndims: `Int64Array( buf, 3, 1 )`\n* - shape: `Int64Array( buf, 11, ndims )`\n* - strides: `Int64Array( buf, 11+(ndims*8), ndims )`\n* - offset: `Int64Array( buf, 11+(ndims*16), 1 )`\n* - order: `Int8Array( buf, 19+(ndims*16), 1 )`\n* - mode: `Int8Array( buf, 20+(ndims*16), 1 )`\n* - nsubmodes: `Int64Array( buf, 21+(ndims*16), 1 )`\n* - submodes: `Int8Array( buf, 29+(ndims*16), nsubmodes )`\n* - flags: `Int32Array( buf, 29+(ndims*16)+nsubmodes, 1 )`\n*\n* @private\n* @returns {DataView} serialized meta data\n*/\nfunction meta2dataview() {\n\t/* eslint-disable no-invalid-this */\n\tvar nbytes;\n\tvar bytes;\n\tvar flgs;\n\tvar len;\n\tvar dt;\n\tvar sh;\n\tvar st;\n\tvar sm;\n\tvar v;\n\tvar m;\n\tvar o;\n\tvar s;\n\tvar N;\n\tvar M;\n\tvar i;\n\n\tm = this._mode || 'throw';\n\tsm = this._submode || [ m ];\n\tN = this._ndims;\n\tM = sm.length;\n\n\t// Compute the amount of memory we need to allocate for storing meta data:\n\tlen = 33 + (N*16) + M;\n\n\t// Check if we've already serialized ndarray meta data and can reuse an already allocated array buffer...\n\tv = this.__meta_dataview__;\n\tif ( v && v.byteLength === len ) { // Note: the byte length check is only a bare minimum sanity check, as cached contents may still be \"stale\" (e.g., shape and/or strides may have changed)\n\t\treturn v;\n\t}\n\t// Allocate raw memory and create views for interfacing with the allocated memory:\n\tv = new DataView( new ArrayBuffer( len ) );\n\tbytes = new Uint8Array( v.buffer );\n\n\t// Retrieve ndarray meta data:\n\tsh = this._shape;\n\tst = this._strides;\n\tdt = this._dtype;\n\tnbytes = this._bytesPerElement;\n\n\t// Endianness: (byteoffset: 0; bytelength: 1)\n\to = 0;\n\tv.setInt8( o, ( IS_LITTLE_ENDIAN ) ? 1 : 0 );\n\n\t// Data type: (byteoffset: 1; bytelength: 2)\n\to += 1;\n\tv.setInt16( o, DTYPES[ dt ], IS_LITTLE_ENDIAN );\n\n\t// Number of dimensions: (byteoffset: 3; bytelength: 8)\n\to += 2;\n\tfloat64ToInt64Bytes( N, bytes, 1, o );\n\n\t// Shape and strides: (byteoffset: 11 and 11+(ndims*8), respectively; bytelength: ndims*8 for both shape and strides, and, thus, ndims*16 total)\n\ts = N * 8; // stride length between a dimension (shape[i]) and its associated stride\n\to += 8;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tfloat64ToInt64Bytes( sh[i], bytes, 1, o );\n\t\tfloat64ToInt64Bytes( st[i]*nbytes, bytes, 1, o+s );\n\t\to += 8;\n\t}\n\t// Offset: (byteoffset: 11+(ndims*16); bytelength: 8)\n\to += s;\n\tfloat64ToInt64Bytes( this._offset*nbytes, bytes, 1, o );\n\n\t// Order: (byteoffset: 19+(ndims*16); bytelength: 1)\n\to += 8;\n\tv.setInt8( o, ORDERS[ this._order ] );\n\n\t// Mode: (byteoffset: 20+(ndims*16); bytelength: 1)\n\to += 1;\n\tv.setInt8( o, MODES[ m ] );\n\n\t// Number of submodes: (byteoffset: 21+(ndims*16); bytelength: 8)\n\to += 1;\n\tfloat64ToInt64Bytes( M, bytes, 1, o );\n\n\t// Submodes: (byteoffset: 29+(ndims*16); bytelength: nsubmodes*1)\n\to += 8;\n\tfor ( i = 0; i < M; i++ ) {\n\t\tv.setInt8( o, MODES[ sm[i] ] );\n\t\to += 1;\n\t}\n\t// Flags: (byteoffset: 29+(ndims*16)+nsubmodes; bytelength: 4)\n\tflgs = 0|0;\n\tflgs |= ( this._flags.READONLY ) ? 4 : 0; // 00000000 00000000 00000000 00000100\n\tv.setInt32( o, flgs, IS_LITTLE_ENDIAN );\n\n\t// Cache the serialized meta data:\n\tthis.__meta_dataview__ = v;\n\n\treturn v;\n\n\t/* eslint-enable no-invalid-this */\n}\n\n\n// EXPORTS //\n\nmodule.exports = meta2dataview;\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/* eslint-disable no-restricted-syntax, no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nvar hasBigIntSupport = require( '@stdlib/assert/has-bigint-support' );\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar setReadOnlyAccessor = require( '@stdlib/utils/define-nonenumerable-read-only-accessor' );\nvar bytesPerElement = require( './../../../base/bytes-per-element' );\nvar iterationOrder = require( './../../../base/iteration-order' );\nvar strides2order = require( './../../../base/strides2order' );\nvar Boolean = require( '@stdlib/boolean/ctor' );\nvar isColumnMajorContiguous = require( './is_column_major_contiguous.js' );\nvar isRowMajorContiguous = require( './is_row_major_contiguous.js' );\nvar isContiguous = require( './is_contiguous.js' );\nvar copyFlags = require( './copy_flags.js' );\nvar igetValue = require( './iget.js' );\nvar isetValue = require( './iset.js' );\nvar setValue = require( './set.js' );\nvar getValue = require( './get.js' );\nvar toJSON = require( './tojson.js' );\nvar toString = require( './tostring.js' ); // eslint-disable-line stdlib/no-redeclare\nvar meta2dataview = require( './meta2dataview.js' );\nvar meta2dataviewPolyfill = require( './meta2dataview.polyfill.js' );\n\n\n// MAIN //\n\n/**\n* ndarray constructor.\n*\n* ## Notes\n*\n* - To create a zero-dimensional array,\n*\n* ```javascript\n* var buffer = [ 1 ];\n* var shape = [];\n* var strides = [ 0 ];\n* var offset = 0;\n*\n* var out = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* ```\n*\n* @constructor\n* @param {string} dtype - data type\n* @param {(ArrayLikeObject|TypedArray|Buffer)} buffer - data buffer\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - array strides\n* @param {NonNegativeInteger} offset - index offset\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @returns {ndarray} ndarray instance\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var out = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*/\nfunction ndarray( dtype, buffer, shape, strides, offset, order ) {\n\tvar contiguous;\n\tvar nbytes;\n\tvar ord;\n\tvar len;\n\tvar i;\n\tif ( !(this instanceof ndarray) ) {\n\t\treturn new ndarray( dtype, buffer, shape, strides, offset, order );\n\t}\n\t// Compute the number of elements...\n\tlen = 1;\n\tfor ( i = 0; i < shape.length; i++ ) {\n\t\tlen *= shape[ i ];\n\t}\n\t// Compute the number of bytes...\n\tif ( buffer.BYTES_PER_ELEMENT ) {\n\t\tnbytes = buffer.BYTES_PER_ELEMENT * len;\n\t} else {\n\t\tnbytes = null;\n\t}\n\t// Set private properties...\n\tthis._byteLength = nbytes;\n\tthis._bytesPerElement = bytesPerElement( dtype );\n\tthis._buffer = buffer;\n\tthis._dtype = dtype;\n\tthis._length = len;\n\tthis._ndims = shape.length;\n\tthis._offset = offset;\n\tthis._order = order;\n\tthis._shape = shape;\n\tthis._strides = strides;\n\tthis._accessors = Boolean( buffer.get && buffer.set );\n\n\tthis._iterationOrder = iterationOrder( strides );\n\n\t// Determine if the array can be stored contiguously:\n\tcontiguous = isContiguous( len, shape, strides, offset, this._iterationOrder ); // eslint-disable-line max-len\n\n\t// Infer the array \"order\" from the stride array (this is supplementary to the `order` parameter):\n\tord = strides2order( strides );\n\n\tthis._flags = {\n\t\t'ROW_MAJOR_CONTIGUOUS': isRowMajorContiguous( ord, contiguous ),\n\t\t'COLUMN_MAJOR_CONTIGUOUS': isColumnMajorContiguous( ord, contiguous ),\n\t\t'READONLY': false\n\t};\n\n\t// Initialize a property for caching serialized meta data:\n\tthis.__meta_dataview__ = null;\n\n\treturn this;\n}\n\n/**\n* Constructor name.\n*\n* @name name\n* @memberof ndarray\n* @type {string}\n* @default 'ndarray'\n*\n* @example\n* var str = ndarray.name;\n* // returns 'ndarray'\n*/\nsetReadOnly( ndarray, 'name', 'ndarray' );\n\n/**\n* Size (in bytes) of the array (if known).\n*\n* @name byteLength\n* @memberof ndarray.prototype\n* @type {(NonNegativeInteger|null)}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var buffer = new Float64Array( [ 1, 2, 3, 4, 5, 6 ] );\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'float64', buffer, shape, strides, offset, 'row-major' );\n*\n* var byteLength = x.byteLength;\n* // returns 48\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'byteLength', function get() {\n\treturn this._byteLength;\n});\n\n/**\n* Size (in bytes) of each array element (if known).\n*\n* @name BYTES_PER_ELEMENT\n* @memberof ndarray.prototype\n* @type {(PositiveInteger|null)}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var buffer = new Float64Array( [ 1, 2, 3, 4, 5, 6 ] );\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'float64', buffer, shape, strides, offset, 'row-major' );\n*\n* var nbytes = x.BYTES_PER_ELEMENT;\n* // returns 8\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'BYTES_PER_ELEMENT', function get() {\n\treturn this._bytesPerElement;\n});\n\n/**\n* Pointer to the underlying data buffer.\n*\n* @name data\n* @memberof ndarray.prototype\n* @type {(Array|TypedArray|Buffer)}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var data = x.data;\n* // returns [ 1, 2, 3, 4, 5, 6 ]\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'data', function get() {\n\treturn this._buffer;\n});\n\n/**\n* Underlying data type.\n*\n* @name dtype\n* @memberof ndarray.prototype\n* @type {string}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var dtype = x.dtype;\n* // returns 'generic'\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'dtype', function get() {\n\treturn this._dtype;\n});\n\n/**\n* Meta information, such as information concerning the memory layout of the array.\n*\n* @name flags\n* @memberof ndarray.prototype\n* @type {Object}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var flgs = x.flags;\n* // returns \n*/\nsetReadOnlyAccessor( ndarray.prototype, 'flags', function get() {\n\treturn copyFlags( this._flags );\n});\n\n/**\n* Length of the array.\n*\n* @name length\n* @memberof ndarray.prototype\n* @type {NonNegativeInteger}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var len = x.length;\n* // returns 6\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'length', function get() {\n\treturn this._length;\n});\n\n/**\n* Number of dimensions.\n*\n* @name ndims\n* @memberof ndarray.prototype\n* @type {PositiveInteger}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var ndims = x.ndims;\n* // returns 2\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'ndims', function get() {\n\treturn this._ndims;\n});\n\n/**\n* Index offset which specifies the buffer index at which to start iterating over array elements.\n*\n* @name offset\n* @memberof ndarray.prototype\n* @type {NonNegativeInteger}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var o = x.offset;\n* // returns 0\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'offset', function get() {\n\treturn this._offset;\n});\n\n/**\n* Array order.\n*\n* ## Notes\n*\n* - The array order is either row-major (C-style) or column-major (Fortran-style).\n*\n* @name order\n* @memberof ndarray.prototype\n* @type {string}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var order = x.order;\n* // returns 'row-major'\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'order', function get() {\n\treturn this._order;\n});\n\n/**\n* Shape of the array.\n*\n* @name shape\n* @memberof ndarray.prototype\n* @type {NonNegativeIntegerArray}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var s = x.shape;\n* // returns [ 3, 2 ]\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'shape', function get() {\n\treturn this._shape.slice();\n});\n\n/**\n* Index strides which specify how to access data along corresponding array dimensions.\n*\n* @name strides\n* @memberof ndarray.prototype\n* @type {IntegerArray}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var s = x.strides;\n* // returns [ 2, 1 ]\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'strides', function get() {\n\treturn this._strides.slice();\n});\n\n/**\n* Returns an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @name get\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {...integer} [idx] - indices\n* @returns {*} array element\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.get( 1, 1 );\n* // returns 4\n*/\nsetReadOnly( ndarray.prototype, 'get', getValue );\n\n/**\n* Returns an array element located at a specified linear index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the input argument is ignored and, for clarity, should not be provided.\n*\n* @name iget\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {integer} [idx] - linear index\n* @returns {*} array element\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.iget( 3 );\n* // returns 4\n*/\nsetReadOnly( ndarray.prototype, 'iget', igetValue );\n\n/**\n* Sets an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @name set\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {...integer} [idx] - indices\n* @param {*} v - value to set\n* @returns {ndarray} ndarray instance\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.get( 1, 1 );\n* // returns 4\n*\n* x.set( 1, 1, 10 );\n*\n* var b = x.data;\n* // returns [ 1, 2, 3, 10, 5, 6 ]\n*\n* v = x.get( 1, 1 );\n* // returns 10\n*/\nsetReadOnly( ndarray.prototype, 'set', setValue );\n\n/**\n* Sets an array element located at a specified linear index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the first, and only, argument should be the value to set.\n*\n* @name iset\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {integer} [idx] - linear index\n* @param {*} v - value to set\n* @returns {ndarray} ndarray instance\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.iget( 3 );\n* // returns 4\n*\n* x.iset( 3, 10 );\n*\n* var b = x.data;\n* // returns [ 1, 2, 3, 10, 5, 6 ]\n*\n* v = x.iget( 3 );\n* // returns 10\n*/\nsetReadOnly( ndarray.prototype, 'iset', isetValue );\n\n/**\n* Serializes an ndarray as a string.\n*\n* ## Notes\n*\n* - The method does **not** serialize data outside of the buffer region defined by the array configuration.\n*\n* @name toString\n* @memberof ndarray.prototype\n* @type {Function}\n* @returns {string} serialized ndarray\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6, 7, 8 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 2;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var str = x.toString();\n* // returns \"ndarray( 'generic', [ 3, 4, 5, 6, 7, 8 ], [ 3, 2 ], [ 2, 1 ], 0, 'row-major' )\"\n*/\nsetReadOnly( ndarray.prototype, 'toString', toString );\n\n/**\n* Serializes an ndarray as a JSON object.\n*\n* ## Notes\n*\n* - `JSON.stringify()` implicitly calls this method when stringifying an `ndarray` instance.\n* - The method does **not** serialize data outside of the buffer region defined by the array configuration.\n*\n* @name toJSON\n* @memberof ndarray.prototype\n* @type {Function}\n* @returns {Object} serialized ndarray\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6, 7, 8 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 2;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var o = x.toJSON();\n* // e.g., returns { 'type': 'ndarray', 'dtype': 'generic', 'flags': {...}, 'offset': 0, 'order': 'row-major', 'shape': [ 3, 2 ], 'strides': [ 2, 1 ], 'data': [ 3, 4, 5, 6, 7, 8 ] }\n*/\nsetReadOnly( ndarray.prototype, 'toJSON', toJSON );\n\n/**\n* Serializes ndarray meta data to a `DataView`.\n*\n* ## Notes\n*\n* - Meta data format:\n*\n* ```text\n* | (1 byte) | (2 bytes) | (8 bytes) | (ndims*8 bytes) | (ndims*8 bytes) | (8 bytes) | (1 byte) | (1 byte) | (8 bytes) | (nsubmodes*1 bytes) | (4 bytes) |\n* ```\n*\n* where `strides` and `offset` are in units of bytes.\n*\n* - If the endianness is `1`, the byte order is little endian. If the endianness is `0`, the byte order is big endian.\n*\n* - Serialization is performed according to host byte order (endianness).\n*\n* - Consumers of this method should treat the returned `DataView` as **immutable**. Otherwise, mutation can invalidate meta data and potentially affect other consumers.\n*\n* @private\n* @name __array_meta_dataview__\n* @memberof ndarray.prototype\n* @type {Function}\n* @returns {DataView} serialized meta data\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6, 7, 8 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 2;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var dv = x.__array_meta_dataview__();\n* // returns \n*/\nsetReadOnly( ndarray.prototype, '__array_meta_dataview__', ( hasBigIntSupport() ) ? meta2dataview : meta2dataviewPolyfill );\n\n\n// EXPORTS //\n\nmodule.exports = ndarray;\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* Multidimensional array constructor.\n*\n* @module @stdlib/ndarray/base/ctor\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/base/ctor' );\n*\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var out = ndarray( 'float64', buffer, shape, strides, offset, 'row-major' );\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 ndarray settings.\n*\n* @returns {Object} defaults\n*\n* @example\n* var o = defaults();\n* // returns {...}\n*/\nfunction defaults() {\n\treturn {\n\t\t// Data types:\n\t\t'dtypes': {\n\t\t\t'default': 'float64',\n\t\t\t'numeric': 'float64',\n\t\t\t'real': 'float64',\n\t\t\t'floating_point': 'float64',\n\t\t\t'real_floating_point': 'float64',\n\t\t\t'complex_floating_point': 'complex128',\n\t\t\t'integer': 'int32',\n\t\t\t'signed_integer': 'int32',\n\t\t\t'unsigned_integer': 'uint32'\n\t\t},\n\n\t\t// Memory layout:\n\t\t'order': 'row-major',\n\n\t\t// Casting mode:\n\t\t'casting': 'safe',\n\n\t\t// Index mode:\n\t\t'index_mode': 'throw'\n\t};\n}\n\n\n// EXPORTS //\n\nmodule.exports = defaults;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 defaults = require( './main.js' );\n\n\n// VARIABLES //\n\nvar DEFAULTS = defaults();\nvar HASH = {\n\t'dtypes.default': DEFAULTS.dtypes.default,\n\t'dtypes.numeric': DEFAULTS.dtypes.numeric,\n\t'dtypes.real': DEFAULTS.dtypes.real,\n\t'dtypes.floating_point': DEFAULTS.dtypes.floating_point,\n\t'dtypes.real_floating_point': DEFAULTS.dtypes.real_floating_point,\n\t'dtypes.complex_floating_point': DEFAULTS.dtypes.complex_floating_point,\n\t'dtypes.integer': DEFAULTS.dtypes.integer,\n\t'dtypes.signed_integer': DEFAULTS.dtypes.signed_integer,\n\t'dtypes.unsigned_integer': DEFAULTS.dtypes.unsigned_integer,\n\t'order': DEFAULTS.order,\n\t'casting': DEFAULTS.casting,\n\t'index_mode': DEFAULTS.index_mode\n};\n\n\n// MAIN //\n\n/**\n* Returns a default ndarray setting.\n*\n* @param {string} name - setting name\n* @returns {*} default setting or null\n*\n* @example\n* var v = get( 'dtypes.default' );\n* // returns \n*/\nfunction get( name ) {\n\tvar v = HASH[ name ];\n\treturn ( v === void 0 ) ? null : v;\n}\n\n\n// EXPORTS //\n\nmodule.exports = get;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 default ndarray settings.\n*\n* @module @stdlib/ndarray/defaults\n*\n* @example\n* var defaults = require( '@stdlib/ndarray/defaults' );\n*\n* var o = defaults();\n* // returns {...}\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar get = require( './get.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'get', get );\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/**\n* Restricts an index to the interval `[0,max]`.\n*\n* @param {integer} idx - index\n* @param {NonNegativeInteger} max - maximum index\n* @returns {NonNegativeInteger} index\n*\n* @example\n* var idx = clampIndex( -1, 10 );\n* // returns 0\n*\n* idx = clampIndex( 15, 10 );\n* // returns 10\n*\n* idx = clampIndex( 5, 10 );\n* // returns 5\n*/\nfunction clampIndex( idx, max ) {\n\tif ( idx < 0 ) {\n\t\treturn 0;\n\t}\n\tif ( idx > max ) {\n\t\treturn max;\n\t}\n\treturn idx;\n}\n\n\n// EXPORTS //\n\nmodule.exports = clampIndex;\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* Restrict an index to the interval `[0,max]`.\n*\n* @module @stdlib/ndarray/base/clamp-index\n*\n* @example\n* var clampIndex = require( '@stdlib/ndarray/base/clamp-index' );\n*\n* var idx = clampIndex( -1, 10 );\n* // returns 0\n*\n* idx = clampIndex( 15, 10 );\n* // returns 10\n*\n* idx = clampIndex( 5, 10 );\n* // returns 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) 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* Wraps an index on the interval `[0,max]`.\n*\n* @param {integer} idx - index\n* @param {NonNegativeInteger} max - maximum index\n* @returns {NonNegativeInteger} index\n*\n* @example\n* var idx = wrapIndex( -1, 10 );\n* // returns 10\n*\n* idx = wrapIndex( 13, 10 );\n* // returns 2\n*\n* idx = wrapIndex( 6, 10 );\n* // returns 6\n*/\nfunction wrapIndex( idx, max ) {\n\tvar mp1 = max + 1;\n\tif ( idx < 0 ) {\n\t\tidx += mp1; // slight optimization to avoid modulo arithmetic when |idx| <= max+1\n\t\tif ( idx < 0 ) {\n\t\t\tidx %= mp1;\n\t\t\tif ( idx !== 0 ) {\n\t\t\t\tidx += mp1;\n\t\t\t}\n\t\t}\n\t\treturn idx;\n\t}\n\tif ( idx > max ) {\n\t\tidx -= mp1; // slight optimization to avoid modulo arithmetic when max+1 < idx <= 2*(max+1)\n\t\tif ( idx > max ) {\n\t\t\tidx %= mp1;\n\t\t}\n\t\treturn idx;\n\t}\n\treturn idx;\n}\n\n\n// EXPORTS //\n\nmodule.exports = wrapIndex;\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* Wrap an index on the interval `[0,max]`.\n*\n* @module @stdlib/ndarray/base/wrap-index\n*\n* @example\n* var wrapIndex = require( '@stdlib/ndarray/base/wrap-index' );\n*\n* var idx = wrapIndex( -1, 10 );\n* // returns 10\n*\n* idx = wrapIndex( 14, 10 );\n* // returns 3\n*\n* idx = wrapIndex( 6, 10 );\n* // returns 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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Normalizes an index to the interval `[0,max]`.\n*\n* @param {integer} idx - index\n* @param {NonNegativeInteger} max - maximum index\n* @returns {integer} index\n*\n* @example\n* var idx = normalizeIndex( -2, 10 );\n* // returns 9\n*\n* idx = normalizeIndex( 15, 10 );\n* // returns -1\n*\n* idx = normalizeIndex( 5, 10 );\n* // returns 5\n*/\nfunction normalizeIndex( idx, max ) {\n\tif ( idx < 0 ) {\n\t\tidx += max + 1;\n\t\tif ( idx < 0 ) {\n\t\t\treturn -1;\n\t\t}\n\t\treturn idx;\n\t}\n\tif ( idx > max ) {\n\t\treturn -1;\n\t}\n\treturn idx;\n}\n\n\n// EXPORTS //\n\nmodule.exports = normalizeIndex;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Normalize an index to the interval `[0,max]`.\n*\n* @module @stdlib/ndarray/base/normalize-index\n*\n* @example\n* var normalizeIndex = require( '@stdlib/ndarray/base/normalize-index' );\n*\n* var idx = normalizeIndex( -2, 10 );\n* // returns 9\n*\n* idx = normalizeIndex( 15, 10 );\n* // returns -1\n*\n* idx = normalizeIndex( 5, 10 );\n* // returns 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) 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 clampIndex = require( './../../../base/clamp-index' );\nvar wrapIndex = require( './../../../base/wrap-index' );\nvar normalizeIndex = require( './../../../base/normalize-index' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns an index given an index mode.\n*\n* @param {integer} idx - index\n* @param {NonNegativeInteger} max - maximum index\n* @param {string} mode - specifies how to handle an index outside the interval `[0,max]`\n* @throws {RangeError} index out-of-bounds\n* @returns {integer} index\n*\n* @example\n* var idx = ind( 2, 9, 'clamp' );\n* // returns 2\n*\n* idx = ind( 10, 9, 'clamp' );\n* // returns 9\n*\n* idx = ind( -1, 9, 'clamp' );\n* // returns 0\n*\n* @example\n* var idx = ind( 2, 9, 'wrap' );\n* // returns 2\n*\n* idx = ind( 10, 9, 'wrap' );\n* // returns 0\n*\n* idx = ind( -1, 9, 'wrap' );\n* // returns 9\n*\n* @example\n* var idx = ind( 2, 9, 'throw' );\n* // returns 2\n*\n* idx = ind( 10, 9, 'throw' );\n* // throws \n*\n* idx = ind( -1, 9, 'throw' );\n* // throws \n*\n* @example\n* var idx = ind( 1, 10, 'normalize' );\n* // returns 1\n*\n* idx = ind( -4, 10, 'normalize' );\n* // returns 7\n*\n* idx = ind( -100, 10, 'normalize' );\n* // throws \n*/\nfunction ind( idx, max, mode ) {\n\tvar index;\n\tif ( mode === 'clamp' ) {\n\t\treturn clampIndex( idx, max );\n\t}\n\tif ( mode === 'wrap' ) {\n\t\treturn wrapIndex( idx, max );\n\t}\n\tindex = idx;\n\tif ( mode === 'normalize' ) {\n\t\tindex = normalizeIndex( index, max );\n\t}\n\tif ( index < 0 || index > max ) {\n\t\tthrow new RangeError( format( 'invalid argument. Index must resolve to a value on the interval: [0, %d]. Value: `%d`.', max, idx ) );\n\t}\n\treturn index;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ind;\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 an index given an index mode.\n*\n* @module @stdlib/ndarray/base/ind\n*\n* @example\n* var ind = require( '@stdlib/ndarray/base/ind' );\n*\n* var idx = ind( -1, 10, 'wrap' );\n* // returns 10\n*\n* idx = ind( 14, 10, 'wrap' );\n* // returns 3\n*\n* idx = ind( 6, 10, 'wrap' );\n* // returns 6\n*\n* @example\n* var ind = require( '@stdlib/ndarray/base/ind' );\n*\n* var idx = ind( -1, 10, 'clamp' );\n* // returns 0\n*\n* idx = ind( 14, 10, 'clamp' );\n* // returns 10\n*\n* idx = ind( 6, 10, 'clamp' );\n* // returns 6\n*\n* @example\n* var ind = require( '@stdlib/ndarray/base/ind' );\n*\n* var idx = ind( 1, 10, 'throw' );\n* // returns 1\n*\n* idx = ind( 14, 10, 'throw' );\n* // throws \n*\n* idx = ind( -1, 10, 'throw' );\n* // throws \n*\n* @example\n* var ind = require( '@stdlib/ndarray/base/ind' );\n*\n* var idx = ind( 1, 10, 'normalize' );\n* // returns 1\n*\n* idx = ind( -4, 10, 'normalize' );\n* // returns 7\n*\n* idx = ind( -100, 10, 'normalize' );\n* // throws \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/* eslint-disable no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nvar isInteger = require( '@stdlib/assert/is-integer' ).isPrimitive;\nvar getIndex = require( './../../base/ind' );\nvar parent = require( './../../base/ctor' ); // eslint-disable-line stdlib/no-redeclare\nvar format = require( '@stdlib/string/format' );\n\n\n// VARIABLES //\n\nvar base = parent.prototype.iget;\n\n\n// MAIN //\n\n/**\n* Returns an array element located at a specified linear index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the input argument is ignored and, for clarity, should not be provided.\n*\n* @private\n* @param {integer} [idx] - linear view index\n* @throws {TypeError} index must be an integer\n* @throws {RangeError} index exceeds array dimensions\n* @returns {*} array element\n*/\nfunction iget( idx ) {\n\tif ( this._ndims > 0 ) {\n\t\tif ( !isInteger( idx ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Index must be an integer. Value: `%s`.', idx ) );\n\t\t}\n\t\tidx = getIndex( idx, this._length-1, this._mode );\n\t\treturn base.call( this, idx );\n\t}\n\treturn base.call( this );\n}\n\n\n// EXPORTS //\n\nmodule.exports = iget;\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/* eslint-disable no-invalid-this */\n\n'use strict';\n\n// METHODS //\n\nvar isInteger = require( '@stdlib/assert/is-integer' ).isPrimitive;\nvar getIndex = require( './../../base/ind' );\nvar parent = require( './../../base/ctor' ); // eslint-disable-line stdlib/no-redeclare\nvar format = require( '@stdlib/string/format' );\n\n\n// VARIABLES //\n\nvar base = parent.prototype.iset;\n\n\n// MAIN //\n\n/**\n* Sets an array element located at a specified linear index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the first, and only, argument should be the value to set.\n*\n* @private\n* @param {integer} [idx] - linear view index\n* @param {*} v - value to set\n* @throws {Error} cannot write to a read-only array\n* @throws {TypeError} index must be an integer\n* @throws {RangeError} index exceeds array dimensions\n* @returns {ndarray} ndarray instance\n*/\nfunction iset( idx, v ) {\n\tif ( this._flags.READONLY ) {\n\t\tthrow new Error( 'invalid invocation. Cannot write to a read-only array.' );\n\t}\n\tif ( this._ndims > 0 ) {\n\t\tif ( !isInteger( idx ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Index must be an integer. Value: `%s`.', idx ) );\n\t\t}\n\t\tidx = getIndex( idx, this._length-1, this._mode );\n\t\tbase.call( this, idx, v );\n\t} else {\n\t\tbase.call( this, idx );\n\t}\n\treturn this;\n}\n\n\n// EXPORTS //\n\nmodule.exports = iset;\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/* eslint-disable no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nvar isInteger = require( '@stdlib/assert/is-integer' ).isPrimitive;\nvar getIndex = require( './../../base/ind' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @private\n* @param {...integer} [idx] - indices\n* @throws {TypeError} provided indices must be integer valued\n* @throws {RangeError} index exceeds array dimensions\n* @throws {RangeError} number of indices must equal the number of dimensions\n* @returns {*} array element\n*/\nfunction get() {\n\tvar idx;\n\tvar ind;\n\tvar M;\n\tvar i;\n\n\tif ( arguments.length !== this._ndims ) {\n\t\tthrow new RangeError( format( 'invalid arguments. Number of indices must match the number of dimensions. ndims: `%u`. nargs: `%u`.', this._ndims, arguments.length ) );\n\t}\n\tidx = this._offset;\n\tM = this._submode.length;\n\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\tif ( !isInteger( arguments[ i ] ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Indices must be integer valued. Argument: `%u`. Value: `%s`.', i, arguments[ i ] ) );\n\t\t}\n\t\tind = getIndex( arguments[ i ], this._shape[ i ]-1, this._submode[ i%M ] ); // eslint-disable-line max-len\n\t\tidx += this._strides[ i ] * ind;\n\t}\n\tif ( this._accessors ) {\n\t\treturn this._buffer.get( idx );\n\t}\n\treturn this._buffer[ idx ];\n}\n\n\n// EXPORTS //\n\nmodule.exports = get;\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/* eslint-disable no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nvar isInteger = require( '@stdlib/assert/is-integer' ).isPrimitive;\nvar getIndex = require( './../../base/ind' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Sets an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @private\n* @param {...integer} [idx] - indices\n* @param {*} v - value to set\n* @throws {Error} cannot write to a read-only array\n* @throws {TypeError} provided indices must be integer valued\n* @throws {RangeError} index exceeds array dimensions\n* @throws {RangeError} number of indices must equal the number of dimensions\n* @returns {ndarray} ndarray instance\n*/\nfunction set() {\n\tvar idx;\n\tvar ind;\n\tvar M;\n\tvar i;\n\n\tif ( this._flags.READONLY ) {\n\t\tthrow new Error( 'invalid invocation. Cannot write to a read-only array.' );\n\t}\n\tif ( arguments.length !== this._ndims+1 ) {\n\t\tthrow new RangeError( format( 'invalid arguments. Number of indices must match the number of dimensions. ndims: `%u`. nargs: `%u`.', this._ndims, arguments.length ) );\n\t}\n\tidx = this._offset;\n\tM = this._submode.length;\n\tfor ( i = 0; i < arguments.length-1; i++ ) {\n\t\tif ( !isInteger( arguments[ i ] ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Indices must be integer valued. Argument: `%i`. Value: `%s`.', i, arguments[ i ] ) );\n\t\t}\n\t\tind = getIndex( arguments[ i ], this._shape[ i ]-1, this._submode[ i%M ] ); // eslint-disable-line max-len\n\t\tidx += this._strides[ i ] * ind;\n\t}\n\tif ( this._accessors ) {\n\t\tthis._buffer.set( arguments[ i ], idx );\n\t} else {\n\t\tthis._buffer[ idx ] = arguments[ i ];\n\t}\n\treturn this;\n}\n\n\n// EXPORTS //\n\nmodule.exports = set;\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* Copies the contents of array-like value to a new array.\n*\n* @private\n* @param {ArrayLike} arr - input array\n* @param {NonNegativeInteger} len - array length\n* @returns {Array} output array\n*\n* @example\n* var arr = [ 1.0, 2.0, 3.0 ];\n*\n* var out = copy( arr, arr.length );\n* // returns [ 1.0, 2.0, 3.0 ]\n*\n* var bool = ( arr === out );\n* // returns false\n*/\nfunction copy( arr, len ) {\n\tvar out;\n\tvar i;\n\n\tout = [];\n\tfor ( i = 0; i < len; i++ ) {\n\t\tout.push( arr[ i ] );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = copy;\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 contains = require( '@stdlib/array/base/assert/contains' ).factory;\nvar modes = require( './../../../../index-modes' );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray index mode.\n*\n* @name isIndexMode\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray index mode\n*\n* @example\n* var bool = isIndexMode( 'wrap' );\n* // returns true\n*\n* bool = isIndexMode( 'clamp' );\n* // returns true\n*\n* bool = isIndexMode( 'throw' );\n* // returns true\n*\n* bool = isIndexMode( 'foo' );\n* // returns false\n*/\nvar isIndexMode = contains( modes() );\n\n\n// EXPORTS //\n\nmodule.exports = isIndexMode;\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* Test whether an input value is a supported ndarray index mode.\n*\n* @module @stdlib/ndarray/base/assert/is-index-mode\n*\n* @example\n* var isIndexMode = require( '@stdlib/ndarray/base/assert/is-index-mode' );\n*\n* var bool = isIndexMode( 'wrap' );\n* // returns true\n*\n* bool = isIndexMode( 'clamp' );\n* // returns true\n*\n* bool = isIndexMode( 'throw' );\n* // returns true\n*\n* bool = isIndexMode( 'foo' );\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) 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 isArray = require( '@stdlib/assert/is-array' );\nvar isIndexMode = require( './../../base/assert/is-index-mode' );\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.mode] - specifies how to handle indices which exceed array dimensions\n* @param {string} [options.submode] - specifies how to handle subscripts which exceed array dimensions\n* @param {boolean} [options.readonly] - boolean indicating whether an array should be read-only\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'mode': 'clamp',\n* 'submode': [ 'throw', 'wrap', 'clamp' ]\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tvar i;\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, 'mode' ) ) {\n\t\topts.mode = options.mode;\n\t\tif ( !isIndexMode( opts.mode ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a recognized mode. Option: `%s`.', 'mode', opts.mode ) );\n\t\t}\n\t}\n\tif ( hasOwnProp( options, 'submode' ) ) {\n\t\topts.submode = options.submode;\n\t\tif ( !isArray( opts.submode ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be an array containing recognized modes. Option: `%s`.', 'submode', opts.submode ) );\n\t\t}\n\t\tif ( opts.submode.length === 0 ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be an array containing recognized modes. Option: `%s`.', 'submode', opts.submode.join( ',' ) ) );\n\t\t}\n\t\tfor ( i = 0; i < opts.submode.length; i++ ) {\n\t\t\tif ( !isIndexMode( opts.submode[ i ] ) ) {\n\t\t\t\treturn new TypeError( format( 'invalid option. Each submode must be a recognized mode. Option: `%s`.', opts.submode[ i ] ) );\n\t\t\t}\n\t\t}\n\t\topts.submode = opts.submode.slice();\n\t}\n\tif ( hasOwnProp( options, 'readonly' ) ) {\n\t\topts.readonly = options.readonly;\n\t\tif ( !isBoolean( opts.readonly ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'readonly', opts.readonly ) );\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/* eslint-disable no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar isNonNegativeIntegerArray = require( '@stdlib/assert/is-nonnegative-integer-array' ).primitives;\nvar isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar isIntegerArray = require( '@stdlib/assert/is-integer-array' ).primitives;\nvar isFunction = require( '@stdlib/assert/is-function' );\nvar isOrder = require( './../../base/assert/is-order' );\nvar isDataType = require( './../../base/assert/is-data-type' );\nvar isBufferLengthCompatible = require( './../../base/assert/is-buffer-length-compatible' );\nvar numel = require( './../../base/numel' );\nvar parent = require( './../../base/ctor' ); // eslint-disable-line stdlib/no-redeclare\nvar defaults = require( './../../defaults' );\nvar inherit = require( '@stdlib/utils/inherit' );\nvar format = require( '@stdlib/string/format' );\nvar iget = require( './iget.js' );\nvar iset = require( './iset.js' );\nvar get = require( './get.js' );\nvar set = require( './set.js' );\nvar copy = require( './copy_array.js' );\nvar validate = require( './validate.js' );\n\n\n// VARIABLES //\n\n/*\n* See the following references:\n*\n* - https://stackoverflow.com/questions/22747068/is-there-a-max-number-of-arguments-javascript-functions-can-accept\n* - https://bugs.webkit.org/show_bug.cgi?id=80797\n* - https://github.com/numpy/numpy/issues/5744\n*\n* Note that the maximum number of function arguments can vary from engine to engine. Here, we choose something of a lowest common denominator which may **not** be valid everywhere.\n*/\nvar MAX_DIMS = 32767|0;\n\nvar INDEX_MODE = defaults.get( 'index_mode' );\nvar READONLY = false;\n\n\n// MAIN //\n\n/**\n* ndarray constructor.\n*\n* @constructor\n* @param {string} dtype - data type\n* @param {Collection} buffer - data buffer\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - array strides\n* @param {NonNegativeInteger} offset - index offset\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @param {Options} [options] - function options\n* @param {string} [options.mode=\"throw\"] - specifies how to handle indices which exceed array dimensions\n* @param {StringArray} [options.submode=[\"throw\"]] - specifies how to handle subscripts which exceed array dimensions on a per dimension basis\n* @param {boolean} [options.readonly=false] - boolean indicating whether an array should be read-only\n* @throws {TypeError} `dtype` argument must be a supported ndarray data type\n* @throws {TypeError} `buffer` argument must be an array-like object, typed-array-like, or a Buffer\n* @throws {TypeError} `buffer` argument `get` and `set` properties must be functions\n* @throws {TypeError} `shape` argument must be an array-like object containing nonnegative integers\n* @throws {Error} `shape` argument length must equal the number of dimensions\n* @throws {TypeError} `strides` argument must be an array-like object containing integers\n* @throws {Error} `strides` argument length must equal the number of dimensions (except for zero-dimensional arrays; in which case, the `strides` argument length must be equal to `1`)\n* @throws {Error} for zero-dimensional ndarrays, the `strides` argument must contain a single element equal to `0`\n* @throws {TypeError} `offset` argument must be a nonnegative integer\n* @throws {TypeError} `order` argument must be a supported ndarray order\n* @throws {Error} `buffer` argument must be compatible with specified meta data\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {RangeError} too many dimensions\n* @returns {ndarray} ndarray instance\n*\n* @example\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var out = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*/\nfunction ndarray( dtype, buffer, shape, strides, offset, order, options ) {\n\tvar ndims;\n\tvar opts;\n\tvar err;\n\tvar sh;\n\tvar st;\n\n\tif ( !(this instanceof ndarray) ) {\n\t\tif ( arguments.length < 7 ) {\n\t\t\treturn new ndarray( dtype, buffer, shape, strides, offset, order );\n\t\t}\n\t\treturn new ndarray( dtype, buffer, shape, strides, offset, order, options ); // eslint-disable-line max-len\n\t}\n\tif ( !isDataType( dtype ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a supported ndarray data type. Value: `%s`.', dtype ) );\n\t}\n\tif ( !isCollection( buffer ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an array-like object, typed-array-like, or a Buffer. Value: `%s`.', buffer ) );\n\t} else if ( buffer.get && buffer.set && ( !isFunction( buffer.get ) || !isFunction( buffer.set ) ) ) { // eslint-disable-line max-len\n\t\tthrow new TypeError( format( 'invalid argument. Second argument `get` and `set` properties must be functions. Value: `%s`.', buffer ) );\n\t}\n\tif ( !isNonNegativeIntegerArray( shape ) ) {\n\t\tif ( !isCollection( shape) || shape.length > 0 ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an array-like object containing nonnegative integers. Value: `%s`.', shape ) );\n\t\t}\n\t}\n\tndims = shape.length;\n\tif ( ndims > MAX_DIMS ) {\n\t\tthrow new RangeError( format( 'invalid argument. Number of dimensions must not exceed %u due to stack limits. Value: `%u`.', MAX_DIMS, ndims ) );\n\t}\n\tif ( !isIntegerArray( strides ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be an array-like object containing integers. Value: `%s`.', strides ) );\n\t}\n\tif ( ndims > 0 ) {\n\t\tif ( strides.length !== ndims ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Fourth argument length must match the number of dimensions. Expected number of dimensions: `%u`. Strides length: `%u`.', ndims, strides.length ) );\n\t\t}\n\t} else if ( strides.length !== 1 ) {\n\t\tthrow new RangeError( 'invalid argument. Fourth argument length must be equal to 1 when creating a zero-dimensional ndarray.' );\n\t} else if ( strides[ 0 ] !== 0 ) {\n\t\tthrow new RangeError( format( 'invalid argument. Fourth argument must contain a single element equal to 0. Value: `%d`.', strides[ 0 ] ) );\n\t}\n\tif ( !isNonNegativeInteger( offset ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fifth argument must be a nonnegative integer. Value: `%s`.', offset ) );\n\t}\n\tif ( !isOrder( order ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Sixth argument must be a supported order. Value: `%s`.', order ) );\n\t}\n\tif ( ndims > 0 && !isBufferLengthCompatible( buffer.length, shape, strides, offset ) && numel( shape ) > 0 ) { // eslint-disable-line max-len\n\t\tthrow new Error( 'invalid arguments. Input buffer is incompatible with the specified meta data. Ensure that the offset is valid with regard to the strides array and that the buffer has enough elements to satisfy the desired array shape.' );\n\t}\n\topts = {};\n\topts.mode = INDEX_MODE;\n\topts.readonly = READONLY;\n\tif ( arguments.length > 6 ) {\n\t\terr = validate( opts, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\tthis._mode = opts.mode;\n\tif ( opts.submode === void 0 ) {\n\t\topts.submode = [ this._mode ];\n\t}\n\tthis._submode = opts.submode;\n\n\t// Copy `shape` and `strides` to prevent external mutation:\n\tsh = copy( shape, ndims );\n\tst = copy( strides, ndims || 1 );\n\n\t// Call the parent constructor:\n\tparent.call( this, dtype, buffer, sh, st, offset, order );\n\tthis._flags.READONLY = opts.readonly;\n\n\treturn this;\n\n\t/* eslint-enable no-invalid-this */\n}\n\n// Inherit from the parent constructor:\ninherit( ndarray, parent );\n\n/**\n* Constructor name.\n*\n* @name name\n* @memberof ndarray\n* @type {string}\n* @default 'ndarray'\n*\n* @example\n* var str = ndarray.name;\n* // returns 'ndarray'\n*/\nsetReadOnly( ndarray, 'name', 'ndarray' );\n\n/**\n* Returns an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @name get\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {...integer} [idx] - indices\n* @returns {*} array element\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.get( 1, 1 );\n* // returns 4\n*/\nsetReadOnly( ndarray.prototype, 'get', get );\n\n/**\n* Returns an array element located at a specified linear index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the input argument is ignored and, for clarity, should not be provided.\n*\n* @name iget\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {integer} [idx] - linear index\n* @returns {*} array element\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.iget( 3 );\n* // returns 4\n*/\nsetReadOnly( ndarray.prototype, 'iget', iget );\n\n/**\n* Sets an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @name set\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {...integer} [idx] - indices\n* @param {*} v - value to set\n* @returns {ndarray} ndarray instance\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.get( 1, 1 );\n* // returns 4\n*\n* x.set( 1, 1, 10 );\n*\n* var b = x.data;\n* // returns [ 1, 2, 3, 10, 5, 6 ]\n*\n* v = x.get( 1, 1 );\n* // returns 10\n*/\nsetReadOnly( ndarray.prototype, 'set', set );\n\n/**\n* Sets an array element located at a specified linear index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the first, and only, argument should be the value to set.\n*\n* @name iset\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {integer} [idx] - linear index\n* @param {*} v - value to set\n* @returns {ndarray} ndarray instance\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.iget( 3 );\n* // returns 4\n*\n* x.iset( 3, 10 );\n*\n* var b = x.data;\n* // returns [ 1, 2, 3, 10, 5, 6 ]\n*\n* v = x.iget( 3 );\n* // returns 10\n*/\nsetReadOnly( ndarray.prototype, 'iset', iset );\n\n\n// EXPORTS //\n\nmodule.exports = ndarray;\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* Multidimensional array constructor.\n*\n* @module @stdlib/ndarray/ctor\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var out = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "[\n\t\"none\",\n\t\"equiv\",\n\t\"safe\",\n \"mostly-safe\",\n\t\"same-kind\",\n\t\"unsafe\"\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 MODES = require( './modes.json' );\n\n\n// MAIN //\n\n/**\n* Returns a list of ndarray casting modes.\n*\n* @returns {StringArray} list of ndarray casting modes\n*\n* @example\n* var list = modes();\n* // returns [ 'none', 'equiv', 'safe', 'mostly-safe', 'same-kind', 'unsafe' ]\n*/\nfunction modes() {\n\treturn MODES.slice();\n}\n\n\n// EXPORTS //\n\nmodule.exports = modes;\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 an object mapping supported casting modes to integer values for purposes of C inter-operation.\n*\n* ## Notes\n*\n* - Downstream consumers of this mapping should **not** rely on specific integer values (e.g., `NO_CASTING == 0`). Instead, the object should be used in an opaque manner.\n* - The main purpose of this function is JavaScript and C inter-operation of ndarray objects.\n*\n* @returns {Object} object mapping supported casting modes to integer values\n*\n* @example\n* var table = enumerated();\n* // returns \n*/\nfunction enumerated() {\n\t// NOTE: the following should match the C `casting_modes.h` enumeration!!!!\n\treturn {\n\t\t'none': 0,\n\t\t'equiv': 1,\n\t\t'safe': 2,\n\t\t'mostly-safe': 3,\n\t\t'same-kind': 4,\n\t\t'unsafe': 5\n\t};\n}\n\n\n// EXPORTS //\n\nmodule.exports = enumerated;\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 ndarray casting modes.\n*\n* @module @stdlib/ndarray/casting-modes\n*\n* @example\n* var modes = require( '@stdlib/ndarray/casting-modes' );\n*\n* var list = modes();\n* // returns [ 'none', 'equiv', 'safe', 'mostly-safe', 'same-kind', 'unsafe' ]\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar modes = require( './main.js' );\nvar enumeration = require( './enum.js' );\n\n\n// MAIN //\n\nsetReadOnly( modes, 'enum', enumeration );\n\n\n// EXPORTS //\n\nmodule.exports = modes;\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 modes = require( './../../../../casting-modes' );\n\n\n// VARIABLES //\n\nvar MODES = modes();\nvar len = MODES.length;\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray casting mode.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray casting mode\n*\n* @example\n* var bool = isCastingMode( 'none' );\n* // returns true\n*\n* bool = isCastingMode( 'equiv' );\n* // returns true\n*\n* bool = isCastingMode( 'safe' );\n* // returns true\n*\n* bool = isCastingMode( 'mostly-safe' );\n* // returns true\n*\n* bool = isCastingMode( 'same-kind' );\n* // returns true\n*\n* bool = isCastingMode( 'unsafe' );\n* // returns true\n*\n* bool = isCastingMode( 'foo' );\n* // returns false\n*/\nfunction isCastingMode( v ) {\n\tvar i;\n\tfor ( i = 0; i < len; i++ ) {\n\t\tif ( v === MODES[ i ] ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nmodule.exports = isCastingMode;\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* Test whether an input value is a supported ndarray casting mode.\n*\n* @module @stdlib/ndarray/base/assert/is-casting-mode\n*\n* @example\n* var isCastingMode = require( '@stdlib/ndarray/base/assert/is-casting-mode' );\n*\n* var bool = isCastingMode( 'none' );\n* // returns true\n*\n* bool = isCastingMode( 'equiv' );\n* // returns true\n*\n* bool = isCastingMode( 'safe' );\n* // returns true\n*\n* bool = isCastingMode( 'mostly-safe' );\n* // returns true\n*\n* bool = isCastingMode( 'same-kind' );\n* // returns true\n*\n* bool = isCastingMode( 'unsafe' );\n* // returns true\n*\n* bool = isCastingMode( 'foo' );\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) 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 objectInverse = require( '@stdlib/utils/object-inverse' );\nvar enumeration = require( './../../../dtypes' ).enum;\n\n\n// VARIABLES //\n\nvar hash = objectInverse( enumeration(), {\n\t'duplicates': false\n});\n\n\n// MAIN //\n\n/**\n* Returns the data type string associated with an ndarray data type enumeration constant.\n*\n* @param {integer} dtype - data type enumeration constant\n* @returns {(string|null)} data type string or null\n*\n* @example\n* var str2enum = require( '@stdlib/ndarray/base/dtype-str2enum' );\n*\n* var v = str2enum( 'float64' );\n* // returns \n*\n* var dt = enum2str( v );\n* // returns 'float64'\n*/\nfunction enum2str( dtype ) {\n\tvar v = hash[ dtype ];\n\treturn ( typeof v === 'string' ) ? v : null; // note: we include this guard to prevent walking the prototype chain\n}\n\n\n// EXPORTS //\n\nmodule.exports = enum2str;\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* Return the data type string associated with an ndarray data type enumeration constant.\n*\n* @module @stdlib/ndarray/base/dtype-enum2str\n*\n* @example\n* var str2enum = require( '@stdlib/ndarray/base/dtype-str2enum' );\n* var enum2str = require( '@stdlib/ndarray/base/dtype-enum2str' );\n*\n* var v = str2enum( 'float64' );\n* // returns \n*\n* var dt = enum2str( v );\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) 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 enumeration = require( './../../../dtypes' ).enum;\n\n\n// VARIABLES //\n\nvar ENUM = enumeration();\n\n\n// MAIN //\n\n/**\n* Returns the enumeration constant associated with an ndarray data type string.\n*\n* ## Notes\n*\n* - Downstream consumers of this function should **not** rely on specific integer values (e.g., `INT8 == 0`). Instead, the function should be used in an opaque manner.\n*\n* @param {string} dtype - data type string\n* @returns {(integer|null)} integer value or null\n*\n* @example\n* var v = str2enum( 'int8' );\n* // returns \n*/\nfunction str2enum( dtype ) {\n\tvar v = ENUM[ dtype ];\n\treturn ( typeof v === 'number' ) ? v : null; // note: we include this guard to prevent walking the prototype chain\n}\n\n\n// EXPORTS //\n\nmodule.exports = str2enum;\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* Return the enumeration constant associated with an ndarray data type string.\n*\n* @module @stdlib/ndarray/base/dtype-str2enum\n*\n* @example\n* var str2enum = require( '@stdlib/ndarray/base/dtype-str2enum' );\n*\n* var v = str2enum( 'float64' );\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) 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 enum2str = require( './../../../base/dtype-enum2str' );\nvar str2enum = require( './../../../base/dtype-str2enum' );\n\n\n// MAIN //\n\n/**\n* Returns the data type string associated with a supported ndarray data type value.\n*\n* @param {*} dtype - data type value\n* @returns {(string|null)} data type string or null\n*\n* @example\n* var str2enum = require( '@stdlib/ndarray/base/dtype-str2enum' );\n*\n* var v = resolve( str2enum( 'float64' ) );\n* // returns 'float64'\n*/\nfunction resolve( dtype ) {\n\tvar t = ( typeof dtype );\n\tif ( t === 'string' ) {\n\t\treturn ( str2enum( dtype ) === null ) ? null : dtype;\n\t}\n\tif ( t === 'number' ) {\n\t\treturn enum2str( dtype );\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = resolve;\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* Return the data type string associated with a supported ndarray data type value.\n*\n* @module @stdlib/ndarray/base/dtype-resolve-str\n*\n* @example\n* var str2enum = require( '@stdlib/ndarray/base/dtype-str2enum' );\n* var resolve = require( '@stdlib/ndarray/base/dtype-resolve-str' );\n*\n* var v = resolve( str2enum( 'float64' ) );\n* // returns 'float64'\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 0,\n\t\t\"binary\": 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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 0,\n\t\t\"binary\": 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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 0,\n\t\t\"binary\": 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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\n\t\t\"generic\": 1\n\t},\n\t\"complex128\": {\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 0,\n\t\t\"binary\": 0,\n\t\t\"generic\": 1\n\t},\n\t\"complex64\": {\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\n\t\t\"generic\": 1\n\t},\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\t\t\"complex128\": 0,\n\t\t\"complex64\": 0,\n\t\t\"binary\": 0,\n\t\t\"generic\": 1\n\t},\n\t\"binary\": {\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\t\t\"complex128\": 0,\n\t\t\"complex64\": 0,\n\t\t\"binary\": 1,\n\t\t\"generic\": 0\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 resolve = require( './../../base/dtype-resolve-str' );\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 ndarray 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 ndarray 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 ndarray data types to which a provided ndarray data type can be safely cast.\n*\n* @param {*} [dtype] - ndarray data type value\n* @returns {(Object|StringArray|null)} list of ndarray 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\tdtype = resolve( dtype );\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 ndarray data types to which a provided ndarray data type can be safely cast.\n*\n* @module @stdlib/ndarray/safe-casts\n*\n* @example\n* var safeCasts = require( '@stdlib/ndarray/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* @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 safeCasts = require( './../../../../safe-casts' );\n\n\n// VARIABLES //\n\nvar TABLE = safeCasts();\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if a provided ndarray data type can be safely cast to another ndarray data type.\n*\n* @param {string} from - ndarray data type\n* @param {string} to - ndarray data type\n* @returns {boolean} boolean indicating if a data type can be safely cast to another data type\n*\n* @example\n* var bool = isSafeCast( 'float32', 'float64' );\n* // returns true\n*\n* bool = isSafeCast( 'float64', 'int32' );\n* // returns false\n*/\nfunction isSafeCast( from, to ) {\n\tif ( from === to ) {\n\t\treturn true;\n\t}\n\treturn ( TABLE[ from ][ to ] > 0 );\n}\n\n\n// EXPORTS //\n\nmodule.exports = isSafeCast;\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 if an ndarray data type can be safely cast to another ndarray data type.\n*\n* @module @stdlib/ndarray/base/assert/is-safe-data-type-cast\n*\n* @example\n* var isSafeCast = require( '@stdlib/ndarray/base/assert/is-safe-data-type-cast' );\n*\n* var bool = isSafeCast( 'float32', 'float64' );\n* // returns true\n*\n* bool = isSafeCast( 'float64', 'int32' );\n* // returns false\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 0,\n\t\t\"binary\": 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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 0,\n\t\t\"binary\": 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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\n\t\t\"generic\": 1\n\t},\n\t\"complex128\": {\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\n\t\t\"generic\": 1\n\t},\n\t\"complex64\": {\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\n\t\t\"generic\": 1\n\t},\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\t\t\"complex128\": 0,\n\t\t\"complex64\": 0,\n\t\t\"binary\": 0,\n\t\t\"generic\": 1\n\t},\n\t\"binary\": {\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\t\t\"complex128\": 0,\n\t\t\"complex64\": 0,\n\t\t\"binary\": 1,\n\t\t\"generic\": 0\n\t}\n}\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 resolve = require( './../../base/dtype-resolve-str' );\nvar CASTS = require( './data.json' );\n\n\n// VARIABLES //\n\nvar TABLE;\n\n\n// FUNCTIONS //\n\n/**\n* Generates a full table of casts for each ndarray 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( CASTS );\n\tntypes = dtypes.length;\n\tfor ( i = 0; i < ntypes; i++ ) {\n\t\tdt1 = dtypes[ i ];\n\t\to = 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 casts for each ndarray 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( CASTS );\n\tntypes = dtypes.length;\n\tfor ( i = 0; i < ntypes; i++ ) {\n\t\tdt1 = dtypes[ i ];\n\t\to = 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 ndarray data types to which a provided ndarray data type can be safely cast and, for floating-point data types, can be downcast.\n*\n* @param {*} [dtype] - ndarray data type value\n* @returns {(Object|StringArray|null)} list of ndarray data types or null\n*\n* @example\n* var list = mostlySafeCasts( 'float32' );\n* // returns [...]\n*/\nfunction mostlySafeCasts( 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\tdtype = resolve( dtype );\n\tif ( hasOwnProp( TABLE, dtype ) ) {\n\t\treturn TABLE[ dtype ].slice();\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = mostlySafeCasts;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 ndarray data types to which a provided ndarray data type can be safely cast and, for floating-point data types, can be downcast.\n*\n* @module @stdlib/ndarray/mostly-safe-casts\n*\n* @example\n* var mostlySafeCasts = require( '@stdlib/ndarray/mostly-safe-casts' );\n*\n* var list = mostlySafeCasts( '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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 casts = require( './../../../../mostly-safe-casts' );\n\n\n// VARIABLES //\n\nvar TABLE = casts();\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if a provided ndarray data type can be safely cast or, for floating-point data types, downcast to another ndarray data type.\n*\n* @param {string} from - ndarray data type\n* @param {string} to - ndarray data type\n* @returns {boolean} boolean indicating if a data type can be cast to another data type\n*\n* @example\n* var bool = isMostlySafeCast( 'float32', 'float64' );\n* // returns true\n*\n* bool = isMostlySafeCast( 'float64', 'int32' );\n* // returns false\n*/\nfunction isMostlySafeCast( from, to ) {\n\tif ( from === to ) {\n\t\treturn true;\n\t}\n\treturn ( TABLE[ from ][ to ] > 0 );\n}\n\n\n// EXPORTS //\n\nmodule.exports = isMostlySafeCast;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 if an ndarray data type can be safely cast or, for floating-point data types, downcast to another ndarray data type.\n*\n* @module @stdlib/ndarray/base/assert/is-mostly-safe-data-type-cast\n*\n* @example\n* var isMostlySafeCast = require( '@stdlib/ndarray/base/assert/is-mostly-safe-data-type-cast' );\n*\n* var bool = isMostlySafeCast( 'float32', 'float64' );\n* // returns true\n*\n* bool = isMostlySafeCast( 'float64', 'int32' );\n* // returns false\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 0,\n\t\t\"binary\": 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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 0,\n\t\t\"binary\": 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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 0,\n\t\t\"binary\": 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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\n\t\t\"generic\": 1\n\t},\n\t\"complex128\": {\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\n\t\t\"generic\": 0\n\t},\n\t\"complex64\": {\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\n\t\t\"generic\": 0\n\t},\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\t\t\"complex128\": 0,\n\t\t\"complex64\": 0,\n\t\t\"binary\": 0,\n\t\t\"generic\": 1\n\t},\n\t\"binary\": {\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\t\t\"complex128\": 0,\n\t\t\"complex64\": 0,\n\t\t\"binary\": 1,\n\t\t\"generic\": 0\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 resolve = require( './../../base/dtype-resolve-str' );\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 ndarray 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 ndarray 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 ndarray data types to which a provided ndarray data type can be safely cast or cast within the same \"kind\".\n*\n* @param {*} [dtype] - ndarray data type value\n* @returns {(Object|StringArray|null)} list of ndarray 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\tdtype = resolve( dtype );\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 ndarray data types to which a provided ndarray data type can be safely cast or cast within the same \"kind\".\n*\n* @module @stdlib/ndarray/same-kind-casts\n*\n* @example\n* var sameKindCasts = require( '@stdlib/ndarray/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 sameKindCasts = require( './../../../../same-kind-casts' );\n\n\n// VARIABLES //\n\nvar TABLE = sameKindCasts();\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if a provided ndarray data type can be safely cast to, or is of the same \"kind\" as, another ndarray data type.\n*\n* @param {string} from - ndarray data type\n* @param {string} to - ndarray data type\n* @returns {boolean} boolean indicating if a data type can be cast to another data type\n*\n* @example\n* var bool = isSameKindCast( 'float32', 'float64' );\n* // returns true\n*\n* bool = isSameKindCast( 'uint16', 'int16' );\n* // returns false\n*/\nfunction isSameKindCast( from, to ) {\n\tif ( from === to ) {\n\t\treturn true;\n\t}\n\treturn ( TABLE[ from ][ to ] > 0 );\n}\n\n\n// EXPORTS //\n\nmodule.exports = isSameKindCast;\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 if an ndarray data type can be safely cast to, or is of the same \"kind\" as, another ndarray data type.\n*\n* @module @stdlib/ndarray/base/assert/is-same-kind-data-type-cast\n*\n* @example\n* var isSameKindCast = require( '@stdlib/ndarray/base/assert/is-same-kind-data-type-cast' );\n*\n* var bool = isSameKindCast( 'float32', 'float64' );\n* // returns true\n*\n* bool = isSameKindCast( 'uint16', 'int16' );\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) 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 isSafeCast = require( './../../../../base/assert/is-safe-data-type-cast' );\nvar isMostlySafeCast = require( './../../../../base/assert/is-mostly-safe-data-type-cast' );\nvar isSameKindCast = require( './../../../../base/assert/is-same-kind-data-type-cast' );\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if a provided ndarray data type can be cast to another ndarray data type according to a specified casting mode.\n*\n* @param {string} from - ndarray data type\n* @param {string} to - ndarray data type\n* @param {string} casting - ndarray casting mode\n* @returns {boolean} boolean indicating if a data type can be cast to another data type\n*\n* @example\n* var bool = isAllowedCast( 'float32', 'float64', 'safe' );\n* // returns true\n*\n* bool = isAllowedCast( 'float64', 'int32', 'safe' );\n* // returns false\n*/\nfunction isAllowedCast( from, to, casting ) {\n\t// Anything goes for \"unsafe\" casting...\n\tif ( casting === 'unsafe' ) {\n\t\treturn true;\n\t}\n\t// \"Casting\" to the same data type is always allowed, regardless of the casting mode...\n\tif ( from === to ) {\n\t\treturn true;\n\t}\n\t// No casts between different data types are allowed in \"none\" or \"equiv\" casting modes...\n\tif ( casting === 'none' || casting === 'equiv' ) {\n\t\treturn false;\n\t}\n\t// In \"safe\" casting mode, only casts which preserve values are allowed...\n\tif ( casting === 'safe' ) {\n\t\treturn isSafeCast( from, to );\n\t}\n\t// In \"mostly-safe\" casting mode, in addition to \"safe\" casts, for floating-point data types, downcasts are allowed...\n\tif ( casting === 'mostly-safe' ) {\n\t\treturn isMostlySafeCast( from, to );\n\t}\n\t// In \"same-kind\" casting mode, in addition to \"safe\" casts, casts within a \"kind\" (e.g., between signed integers or between floating-point numbers) are allowed...\n\treturn isSameKindCast( from, to );\n}\n\n\n// EXPORTS //\n\nmodule.exports = isAllowedCast;\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 if an array data type can be cast to another array data type according to a specified casting rule.\n*\n* @module @stdlib/ndarray/base/assert/is-allowed-data-type-cast\n*\n* @example\n* var isAllowedCast = require( '@stdlib/ndarray/base/assert/is-allowed-data-type-cast' );\n*\n* var bool = isAllowedCast( 'float32', 'float64', 'safe' );\n* // returns true\n*\n* bool = isAllowedCast( 'float64', 'int32', 'safe' );\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) 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 Buffer = require( '@stdlib/buffer/ctor' );\nvar Float64Array = require( '@stdlib/array/float64' );\nvar Float32Array = require( '@stdlib/array/float32' );\nvar Int16Array = require( '@stdlib/array/int16' );\nvar Int32Array = require( '@stdlib/array/int32' );\nvar Int8Array = require( '@stdlib/array/int8' );\nvar Uint16Array = require( '@stdlib/array/uint16' );\nvar Uint32Array = require( '@stdlib/array/uint32' );\nvar Uint8Array = require( '@stdlib/array/uint8' );\nvar Uint8ClampedArray = require( '@stdlib/array/uint8c' );\nvar Complex64Array = require( '@stdlib/array/complex64' );\nvar Complex128Array = require( '@stdlib/array/complex128' );\n\n\n// MAIN //\n\n// Mapping from data types to underlying buffer constructors...\nvar ctors = {\n\t'binary': Buffer,\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 ndarray data buffer constructor.\n*\n* @param {string} dtype - data type\n* @returns {(Function|null)} data buffer 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* ndarray data buffer constructors.\n*\n* @module @stdlib/ndarray/base/buffer-ctors\n*\n* @example\n* var ctors = require( '@stdlib/ndarray/base/buffer-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// MAIN //\n\n/**\n* Fills an array-like object with zeros.\n*\n* @private\n* @param {(Array|TypedArray|Buffer)} v - array-like object to fill\n* @returns {(Array|TypedArray|Buffer)} input value\n*\n* @example\n* var arr = zeros( new Array( 2 ) );\n* // returns [ 0, 0 ]\n*/\nfunction zeros( v ) {\n\tvar i;\n\tfor ( i = 0; i < v.length; i++ ) {\n\t\tv[ i ] = 0;\n\t}\n\treturn v;\n}\n\n\n// EXPORTS //\n\nmodule.exports = zeros;\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 bufferCtors = require( './../../../base/buffer-ctors' );\nvar allocUnsafe = require( '@stdlib/buffer/alloc-unsafe' );\nvar zeros = require( './zeros.js' );\n\n\n// FUNCTIONS //\n\n/**\n* Returns a zero-filled generic array.\n*\n* @private\n* @param {NonNegativeInteger} size - buffer size\n* @returns {Array} zero-filled generic array\n*/\nfunction generic( size ) {\n\tvar buf;\n\tvar i;\n\n\tbuf = [];\n\tfor ( i = 0; i < size; i++ ) {\n\t\tbuf.push( 0 );\n\t}\n\treturn buf;\n}\n\n/**\n* Returns a zero-filled binary buffer.\n*\n* @private\n* @param {NonNegativeInteger} size - buffer size\n* @returns {Buffer} zero-filled binary buffer\n*/\nfunction binary( size ) {\n\treturn zeros( allocUnsafe( size ) );\n}\n\n/**\n* Returns a zero-filled typed array.\n*\n* @private\n* @param {string} dtype - data type\n* @param {NonNegativeInteger} size - buffer size\n* @returns {(TypedArray|null)} zero-filled typed array\n*/\nfunction typedarray( dtype, size ) {\n\tvar ctor = bufferCtors( dtype );\n\tif ( ctor ) {\n\t\treturn new ctor( size );\n\t}\n\treturn null;\n}\n\n\n// MAIN //\n\n/**\n* Returns a zero-filled contiguous linear ndarray data buffer.\n*\n* @param {string} dtype - data type\n* @param {NonNegativeInteger} size - buffer size\n* @returns {(Array|TypedArray|Buffer|null)} data buffer\n*\n* @example\n* var buf = buffer( 'float64', 3 );\n* // returns [ 0.0, 0.0, 0.0 ]\n*/\nfunction buffer( dtype, size ) {\n\tif ( dtype === 'generic' ) {\n\t\treturn generic( size );\n\t}\n\tif ( dtype === 'binary' ) {\n\t\treturn binary( size );\n\t}\n\treturn typedarray( dtype, size );\n}\n\n\n// EXPORTS //\n\nmodule.exports = buffer;\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 zero-filled contiguous linear ndarray data buffer.\n*\n* @module @stdlib/ndarray/base/buffer\n*\n* @example\n* var buffer = require( '@stdlib/ndarray/base/buffer' );\n*\n* var buf = buffer( 'float64', 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) 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 ndarray data buffer constructors to data types...\nvar dtypes = {\n\t'Buffer': 'binary',\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'Object': 'generic',\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 = 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 Float64Array = require( '@stdlib/array/float64' );\nvar Float32Array = require( '@stdlib/array/float32' );\nvar Uint32Array = require( '@stdlib/array/uint32' );\nvar Int32Array = require( '@stdlib/array/int32' );\nvar Uint16Array = require( '@stdlib/array/uint16' );\nvar Int16Array = require( '@stdlib/array/int16' );\nvar Uint8Array = require( '@stdlib/array/uint8' );\nvar Uint8ClampedArray = require( '@stdlib/array/uint8c' );\nvar Int8Array = require( '@stdlib/array/int8' );\nvar Complex64Array = require( '@stdlib/array/complex64' );\nvar Complex128Array = require( '@stdlib/array/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 ndarray data buffer.\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 'binary';\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 ndarray data buffer.\n*\n* @module @stdlib/ndarray/base/buffer-dtype\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var dtype = require( '@stdlib/ndarray/base/buffer-dtype' );\n*\n* var buf = new Float64Array( 10 );\n*\n* var dt = dtype( buf );\n* // returns 'float64'\n*\n* dt = dtype( {} );\n* // returns 'generic'\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 isDataType = require( './../../base/assert/is-data-type' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns the data type of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @throws {TypeError} must provide an ndarray having a supported data type\n* @returns {string} data type\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n*\n* var x = zeros( [ 3, 3, 3 ], {\n* 'dtype': 'float64'\n* });\n*\n* var dt = dtype( x );\n* // returns 'float64'\n*/\nfunction dtype( x ) {\n\tvar dt;\n\n\t// Note: we intentionally avoid rigorous ndarray checks to minimize performance impacts. This obviously means that non-ndarray-like objects can sneak through, but this is likely all right for the purposes of this function...\n\tif ( typeof x !== 'object' || x === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\tdt = x.dtype;\n\tif ( isDataType( dt ) ) {\n\t\treturn dt;\n\t}\n\t// A data type is essential for interpreting the memory associated with an ndarray object, so no fallbacks or workarounds for data type resolution...\n\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray having a supported data type. Value: `%s`.', dt ) );\n}\n\n\n// EXPORTS //\n\nmodule.exports = dtype;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 a provided ndarray.\n*\n* @module @stdlib/ndarray/dtype\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n* var dtype = require( '@stdlib/ndarray/dtype' );\n*\n* var x = zeros( [ 3, 3, 3 ], {\n* 'dtype': 'float64'\n* });\n*\n* var dt = dtype( x );\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 isCollection = require( '@stdlib/assert/is-collection' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns the shape of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @throws {TypeError} must provide an ndarray\n* @returns {NonNegativeIntegerArray} shape\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n*\n* var out = shape( zeros( [ 3, 3, 3 ] ) );\n* // returns [ 3, 3, 3 ]\n*/\nfunction shape( x ) {\n\tvar out;\n\tvar sh;\n\tvar d;\n\tvar i;\n\n\t// Note: we intentionally avoid rigorous ndarray checks to minimize performance impacts. This obviously means that non-ndarray-like objects can sneak through, but this is likely all right for the purposes of this function...\n\tif ( typeof x !== 'object' || x === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\tsh = x.shape;\n\tif ( !isCollection( sh ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\t// Copy the shape in order to avoid unintended mutation...\n\tout = [];\n\tfor ( i = 0; i < sh.length; i++ ) {\n\t\td = sh[ i ];\n\t\tif ( !isNonNegativeInteger( d ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t\t}\n\t\tout.push( d );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = shape;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 shape of a provided ndarray.\n*\n* @module @stdlib/ndarray/shape\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n* var shape = require( '@stdlib/ndarray/shape' );\n*\n* var sh = shape( zeros( [ 3, 3, 3 ] ) );\n* // returns [ 3, 3, 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'use strict';\n\n// MODULES //\n\nvar isInteger = require( '@stdlib/assert/is-integer' ).isPrimitive;\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar isOrder = require( './../../base/assert/is-order' );\nvar shape2strides = require( './../../base/shape2strides' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns the strides of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @throws {TypeError} must provide an ndarray\n* @returns {IntegerArray} strides\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n*\n* var out = strides( zeros( [ 3, 3, 3 ] ) );\n* // returns [ 9, 3, 1 ]\n*/\nfunction strides( x ) {\n\tvar out;\n\tvar ord;\n\tvar sh;\n\tvar st;\n\tvar d;\n\tvar i;\n\n\t// Note: we intentionally avoid rigorous ndarray checks to minimize performance impacts. This obviously means that non-ndarray-like objects can sneak through, but this is likely all right for the purposes of this function...\n\tif ( typeof x !== 'object' || x === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\tst = x.strides; // TODO: consider whether we want to support ecosystem libraries, such as scijs/ndarray, which name this property `stride`\n\tif ( !isCollection( st ) ) {\n\t\t// WARNING: if no strides array, try to derive the strides from the shape. Note, however, that there is a lot that can go wrong here, as the only thing we are requiring is that the shape is a collection. The main point of going through the effort to compute strides is to support minimal ndarray-esque objects, where the only essential attributes are `shape` and `dtype` and where other attributes can be computed (e.g., `strides`, `offset`, `ndims`, `order`, etc), assuming single-segment contiguous data stored in row-major order...\n\t\tsh = x.shape;\n\t\tif ( !isCollection( sh ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t\t}\n\t\tif ( sh.length === 0 ) {\n\t\t\treturn [ 0 ];\n\t\t}\n\t\tord = x.order;\n\t\tif ( !isOrder( ord ) ) {\n\t\t\tord = 'row-major';\n\t\t}\n\t\treturn shape2strides( sh, ord );\n\t}\n\t// Copy the strides in order to avoid unintended mutation...\n\tout = [];\n\tfor ( i = 0; i < st.length; i++ ) {\n\t\td = st[ i ];\n\t\tif ( !isInteger( d ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t\t}\n\t\tout.push( d );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = strides;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 strides of a provided ndarray.\n*\n* @module @stdlib/ndarray/strides\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n* var strides = require( '@stdlib/ndarray/strides' );\n*\n* var sh = strides( zeros( [ 3, 3, 3 ] ) );\n* // returns [ 9, 3, 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// MODULES //\n\nvar isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar strides2offset = require( './../../base/strides2offset' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns the index offset specifying the underlying buffer index of the first iterated ndarray element.\n*\n* @param {ndarrayLike} x - input ndarray\n* @throws {TypeError} must provide an ndarray\n* @returns {NonNegativeInteger} index offset\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n*\n* var n = offset( zeros( [ 3, 3, 3 ] ) );\n* // returns 0\n*/\nfunction offset( x ) {\n\tvar st;\n\tvar sh;\n\tvar n;\n\n\t// Note: we intentionally avoid rigorous ndarray checks to minimize performance impacts. This obviously means that non-ndarray-like objects can sneak through, but this is likely all right for the purposes of this function...\n\tif ( typeof x !== 'object' || x === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\tn = x.offset;\n\tif ( isNonNegativeInteger( n ) ) {\n\t\treturn n;\n\t}\n\tsh = x.shape;\n\tif ( !isCollection( sh ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\tst = x.strides;\n\tif ( sh.length === 0 || !isCollection( st ) ) {\n\t\treturn 0;\n\t}\n\tn = strides2offset( sh, st );\n\tif ( isNonNegativeInteger( n ) ) {\n\t\treturn n;\n\t}\n\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n}\n\n\n// EXPORTS //\n\nmodule.exports = offset;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 index offset specifying the underlying buffer index of the first iterated ndarray element.\n*\n* @module @stdlib/ndarray/offset\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n* var offset = require( '@stdlib/ndarray/offset' );\n*\n* var n = offset( zeros( [ 3, 3, 3 ] ) );\n* // returns 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 isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns the number of ndarray dimensions.\n*\n* @param {ndarrayLike} x - input ndarray\n* @throws {TypeError} must provide an ndarray\n* @returns {NonNegativeInteger} number of dimensions\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n*\n* var n = ndims( zeros( [ 3, 3, 3 ] ) );\n* // returns 3\n*/\nfunction ndims( x ) {\n\tvar sh;\n\tvar n;\n\n\t// Note: we intentionally avoid rigorous ndarray checks to minimize performance impacts. This obviously means that non-ndarray-like objects can sneak through, but this is likely all right for the purposes of this function...\n\tif ( typeof x !== 'object' || x === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\tn = x.ndims;\n\tif ( isNonNegativeInteger( n ) ) {\n\t\treturn n;\n\t}\n\tsh = x.shape;\n\tif ( !isCollection( sh ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\treturn sh.length;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ndims;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 number of ndarray dimensions.\n*\n* @module @stdlib/ndarray/ndims\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n* var ndims = require( '@stdlib/ndarray/ndims' );\n*\n* var n = ndims( zeros( [ 3, 3, 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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 isOrder = require( './../../base/assert/is-order' );\nvar strides = require( './../../strides' );\nvar ndims = require( './../../ndims' );\nvar strides2order = require( './../../base/strides2order' );\nvar format = require( '@stdlib/string/format' );\n\n\n// VARIABLES //\n\nvar ROW_MAJOR = 'row-major';\nvar COLUMN_MAJOR = 'column-major';\n\n\n// MAIN //\n\n/**\n* Returns the layout order of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @throws {TypeError} must provide an ndarray\n* @returns {(string|null)} layout order\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n*\n* var x = zeros( [ 3, 3, 3 ], {\n* 'order': 'row-major'\n* });\n*\n* var out = order( x );\n* // returns 'row-major'\n*/\nfunction order( x ) {\n\tvar st;\n\tvar o;\n\n\t// Note: we intentionally avoid rigorous ndarray checks to minimize performance impacts. This obviously means that non-ndarray-like objects can sneak through, but this is likely all right for the purposes of this function...\n\tif ( typeof x !== 'object' || x === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\to = x.order;\n\tif ( isOrder( o ) ) {\n\t\treturn o;\n\t}\n\t// Try to infer the layout order from the strides array...\n\tst = strides( x );\n\to = strides2order( st );\n\tif ( o === 1 || o === 3 ) {\n\t\treturn ROW_MAJOR; // for o == 3 (both row- and column-major; e.g., one-dimensional ndarrays), default to row-major\n\t}\n\tif ( o === 2 ) {\n\t\treturn COLUMN_MAJOR;\n\t}\n\t// o === 0\n\tif ( ndims( x ) === 0 ) {\n\t\treturn ROW_MAJOR; // default to row-major for zero-dimensional ndarrays\n\t}\n\t// Case: mixed strides (e.g., [ 2, 3, 1 ] )\n\treturn null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = order;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 layout order of a provided ndarray.\n*\n* @module @stdlib/ndarray/order\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n* var order = require( '@stdlib/ndarray/order' );\n*\n* var x = zeros( [ 3, 3, 3 ], {\n* 'order': 'row-major'\n* });\n*\n* var out = order( x );\n* // returns 'row-major'\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 isCollection = require( '@stdlib/assert/is-collection' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns the underlying data buffer of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @throws {TypeError} must provide an ndarray\n* @returns {Collection} underlying data buffer\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n*\n* var x = zeros( [ 3, 3, 3 ], {\n* 'dtype': 'float64'\n* });\n*\n* var out = data( x );\n* // returns \n*/\nfunction data( x ) {\n\tvar out;\n\n\t// Note: we intentionally avoid rigorous ndarray checks to minimize performance impacts. This obviously means that non-ndarray-like objects can sneak through, but this is likely all right for the purposes of this function...\n\tif ( typeof x !== 'object' || x === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\tout = x.data;\n\tif ( isCollection( out ) ) {\n\t\treturn out;\n\t}\n\t// A data buffer is essential for operating on an ndarray object, so no fallbacks or workarounds for data buffer resolution...\n\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n}\n\n\n// EXPORTS //\n\nmodule.exports = data;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 underlying data buffer of a provided ndarray.\n*\n* @module @stdlib/ndarray/data-buffer\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n* var data = require( '@stdlib/ndarray/data-buffer' );\n*\n* var x = zeros( [ 3, 3, 3 ], {\n* 'dtype': 'float64'\n* });\n*\n* var out = data( x );\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 PINF = require( '@stdlib/constants/float64/pinf' );\nvar isInteger = require( '@stdlib/math/base/assert/is-integer' );\n\n\n// MAIN //\n\n/**\n* Tests (loosely) if an input value is an array-like object.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if an input value is an array-like object\n*\n* @example\n* var bool = isArrayLikeObject( [] );\n* // returns true\n*\n* @example\n* var bool = isArrayLikeObject( '' );\n* // returns false\n*/\nfunction isArrayLikeObject( value ) {\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\ttypeof value.length === 'number' &&\n\t\tisInteger( value.length ) &&\n\t\tvalue.length >= 0 &&\n\t\tvalue.length < PINF\n\t);\n}\n\n\n// EXPORTS //\n\nmodule.exports = isArrayLikeObject;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 settings = require( './../../defaults' );\n\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'casting': settings.get( 'casting' ),\n\t\t'copy': false,\n\t\t'dtype': settings.get( 'dtypes.default' ),\n\t\t'flatten': true,\n\t\t'mode': settings.get( 'index_mode' ),\n\t\t'ndmin': 0,\n\t\t'order': settings.get( 'order' ),\n\t\t'readonly': false\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 bufferCtors = require( './../../base/buffer-ctors' );\nvar allocUnsafe = require( '@stdlib/buffer/alloc-unsafe' );\n\n\n// MAIN //\n\n/**\n* Casts buffer elements by copying those elements to a buffer of another data type.\n*\n* @private\n* @param {(Array|TypedArray|Buffer)} buffer - input buffer\n* @param {NonNegativeInteger} len - number of elements to cast\n* @param {string} dtype - data type\n* @returns {(Array|TypedArray|Buffer)} output buffer\n*\n* @example\n* var b = castBuffer( [ 1.0, 2.0, 3.0 ], 3, 'float64' );\n* // returns [ 1.0, 2.0, 3.0 ]\n*/\nfunction castBuffer( buffer, len, dtype ) {\n\tvar ctor;\n\tvar out;\n\tvar i;\n\n\tctor = bufferCtors( dtype );\n\tif ( dtype === 'generic') {\n\t\tout = [];\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tout.push( buffer[ i ] );\n\t\t}\n\t} else if ( dtype === 'binary' ) {\n\t\tout = allocUnsafe( len );\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tout[ i ] = buffer[ i ];\n\t\t}\n\t} else {\n\t\tout = new ctor( len );\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tout[ i ] = buffer[ i ]; // TODO: wrap and use accessors here and above\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = castBuffer;\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 arraylike2object = require( '@stdlib/array/base/arraylike2object' );\nvar castReturn = require( '@stdlib/complex/base/cast-return' );\nvar complexCtors = require( '@stdlib/complex/ctors' );\nvar bufferCtors = require( './../../base/buffer-ctors' );\nvar allocUnsafe = require( '@stdlib/buffer/alloc-unsafe' );\nvar ndarray = require( './../../base/ctor' );\nvar getDType = require( './../../dtype' );\nvar getShape = require( './../../shape' );\nvar getStrides = require( './../../strides' );\nvar getOffset = require( './../../offset' );\nvar getOrder = require( './../../order' );\nvar getData = require( './../../data-buffer' );\n\n\n// FUNCTIONS //\n\n/**\n* Copies a \"generic\" ndarray view.\n*\n* @private\n* @param {ndarray} arr - input ndarray\n* @returns {Array} output data buffer\n*/\nfunction generic( arr ) {\n\tvar len;\n\tvar out;\n\tvar i;\n\n\tlen = arr.length;\n\tout = [];\n\tfor ( i = 0; i < len; i++ ) {\n\t\tout.push( arr.iget( i ) ); // as output buffer is generic, should work with both real- and complex-valued ndarrays\n\t}\n\treturn out;\n}\n\n/**\n* Copies a \"binary\" ndarray view.\n*\n* @private\n* @param {ndarray} arr - input ndarray\n* @returns {Array} output data buffer\n*/\nfunction binary( arr ) {\n\tvar len;\n\tvar out;\n\tvar i;\n\n\tlen = arr.length;\n\tout = allocUnsafe( len );\n\tfor ( i = 0; i < len; i++ ) {\n\t\tout[ i ] = arr.iget( i ); // we're assuming that we're doing something sensible here (e.g., not trying to cast a complex-valued ndarray to a \"binary\" ndarray or a double-precision floating-point ndarray to binary, etc)\n\t}\n\treturn out;\n}\n\n/**\n* Copies a \"typed\" ndarray view.\n*\n* @private\n* @param {ndarray} arr - input ndarray\n* @param {string} dtype - data type\n* @returns {Array} output data buffer\n*/\nfunction typed( arr, dtype ) {\n\tvar ctor;\n\tvar len;\n\tvar out;\n\tvar set;\n\tvar fcn;\n\tvar o;\n\tvar i;\n\n\tctor = bufferCtors( dtype );\n\tlen = arr.length;\n\tout = new ctor( len );\n\n\t// If the output data buffer is a complex number array, we need to use accessors...\n\to = arraylike2object( out );\n\tif ( o.accessorProtocol ) {\n\t\tset = o.accessors[ 1 ];\n\t\tfcn = castReturn( wrapper, 1, complexCtors( dtype ) );\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tset( out, i, fcn( i ) ); // we're assuming that we're doing something sensible here (e.g., not trying to cast arbitrary objects to complex numbers, etc)\n\t\t}\n\t} else {\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tout[ i ] = arr.iget( i ); // we're assuming that we're doing something sensible here (e.g., not trying to cast an ndarray containing generic objects to a double-precision floating-point array or a complex-valued ndarray to a real-valued ndarray, etc)\n\t\t}\n\t}\n\treturn out;\n\n\t/**\n\t* Returns the ndarray element specified by a provided linear index.\n\t*\n\t* @private\n\t* @param {NonNegativeInteger} i - linear index\n\t* @returns {*} value\n\t*/\n\tfunction wrapper( i ) {\n\t\treturn arr.iget( i );\n\t}\n}\n\n\n// MAIN //\n\n/**\n* Copies an ndarray view to a data buffer.\n*\n* @private\n* @param {ndarray} arr - input ndarray\n* @param {string} dtype - data type\n* @returns {(Array|TypedArray|Buffer)} output data buffer\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n*\n* var buffer = [ 1.0, 2.0, 3.0 ];\n* var shape = [ 3 ];\n* var strides = [ -1 ];\n* var vec = ndarray( 'generic', buffer, shape, strides, 2, 'row-major' );\n*\n* var b = copyView( vec, 'float64' );\n* // returns [ 3.0, 2.0, 1.0 ]\n*/\nfunction copyView( arr, dtype ) {\n\tvar x;\n\n\t// Create a new \"base\" view, thus ensuring we have an `.iget` method and associated meta data...\n\tx = new ndarray( getDType( arr ), getData( arr ), getShape( arr ), getStrides( arr ), getOffset( arr ), getOrder( arr ) ); // eslint-disable-line max-len\n\n\tif ( dtype === 'generic') {\n\t\treturn generic( x );\n\t}\n\tif ( dtype === 'binary' ) {\n\t\treturn binary( x );\n\t}\n\treturn typed( x, dtype );\n}\n\n\n// EXPORTS //\n\nmodule.exports = copyView;\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* Prepends singleton dimensions in order to satisfy a minimum number of dimensions.\n*\n* @private\n* @param {NonNegativeInteger} ndims - number of dimensions\n* @param {Array} shape - array dimensions\n* @param {NonNegativeInteger} ndmin - minimum number of dimensions\n* @returns {Array} output shape array\n*/\nfunction expandShape( ndims, shape, ndmin ) {\n\tvar out;\n\tvar i;\n\n\tout = [];\n\tfor ( i = 0; i < ndmin-ndims; i++ ) {\n\t\tout.push( 1 );\n\t}\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tout.push( shape[ i ] );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = expandShape;\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 abs = require( '@stdlib/math/base/special/abs' );\n\n\n// MAIN //\n\n/**\n* Expands a strides array to accommodate an expanded array shape (i.e., an array shape with prepended singleton dimensions).\n*\n* @private\n* @param {NonNegativeInteger} ndims - number of dimensions\n* @param {Array} shape - expanded array shape\n* @param {Array} strides - strides array\n* @param {string} order - memory layout order\n* @returns {Array} output strides array\n*\n* @example\n* var out = expandStrides( 4, [ 1, 1, 2, 2 ], [ 1, 2 ], 'column-major' );\n* // returns [ 1, 1, 1, 2 ]\n*\n* @example\n* var out = expandStrides( 4, [ 1, 1, 2, 2 ], [ 2, 1 ], 'row-major' );\n* // returns [ 4, 4, 2, 1 ]\n*/\nfunction expandStrides( ndims, shape, strides, order ) {\n\tvar out;\n\tvar N;\n\tvar s;\n\tvar i;\n\tvar j;\n\n\tN = strides.length;\n\tj = ndims - N;\n\tout = [];\n\tif ( order === 'row-major' ) {\n\t\ts = abs( strides[ 0 ] ) * shape[ j ]; // at `j` is the size of the first non-prepended dimension\n\t\tfor ( i = 0; i < j; i++ ) {\n\t\t\tout.push( s );\n\t\t}\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tout.push( strides[ i ] );\n\t\t}\n\t} else { // column-major\n\t\tfor ( i = 0; i < j; i++ ) {\n\t\t\tout.push( 1 );\n\t\t}\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tout.push( strides[ i ] );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = expandStrides;\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 hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar isObject = require( '@stdlib/assert/is-plain-object' );\nvar isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive;\nvar isArray = require( '@stdlib/assert/is-array' );\nvar isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );\nvar shape2strides = require( './../../base/shape2strides' );\nvar strides2offset = require( './../../base/strides2offset' );\nvar strides2order = require( './../../base/strides2order' );\nvar numel = require( './../../base/numel' );\nvar ndarray = require( './../../ctor' );\nvar isDataType = require( './../../base/assert/is-data-type' );\nvar isOrder = require( './../../base/assert/is-order' );\nvar isCastingMode = require( './../../base/assert/is-casting-mode' );\nvar isAllowedCast = require( './../../base/assert/is-allowed-data-type-cast' );\nvar createBuffer = require( './../../base/buffer' );\nvar getBufferDType = require( './../../base/buffer-dtype' );\nvar getDType = require( './../../dtype' );\nvar getShape = require( './../../shape' );\nvar getStrides = require( './../../strides' );\nvar getOffset = require( './../../offset' );\nvar getOrder = require( './../../order' );\nvar getData = require( './../../data-buffer' );\nvar arrayShape = require( '@stdlib/array/shape' );\nvar flatten = require( '@stdlib/array/base/flatten' );\nvar format = require( '@stdlib/string/format' );\nvar isArrayLikeObject = require( './is_array_like_object.js' );\nvar getDefaults = require( './defaults.js' );\nvar castBuffer = require( './cast_buffer.js' );\nvar copyView = require( './copy_view.js' );\nvar expandShape = require( './expand_shape.js' );\nvar expandStrides = require( './expand_strides.js' );\n\n\n// VARIABLES //\n\nvar defaults = getDefaults();\n\n\n// MAIN //\n\n/**\n* Returns a multidimensional array.\n*\n* @param {(ArrayLikeObject|TypedArrayLike|Buffer|ndarrayLike)} [buffer] - data source\n* @param {Options} [options] - function options\n* @param {(ArrayLikeObject|TypedArrayLike|Buffer|ndarrayLike)} [options.buffer] - data source\n* @param {string} [options.dtype=\"float64\"] - underlying storage data type (if the input data is not of the same type, this option specifies the data type to which to cast the input data)\n* @param {string} [options.order=\"row-major\"] - specifies the memory layout of the array as either row-major (C-style) or column-major (Fortran-style)\n* @param {NonNegativeIntegerArray} [options.shape] - array shape\n* @param {string} [options.mode=\"throw\"] - specifies how to handle indices which exceed array dimensions\n* @param {StringArray} [options.submode=[\"throw\"]] - specifies how to handle subscripts which exceed array dimensions on a per dimension basis\n* @param {boolean} [options.copy=false] - boolean indicating whether to copy source data to a new data buffer\n* @param {boolean} [options.flatten=true] - boolean indicating whether to automatically flatten generic array data sources\n* @param {NonNegativeInteger} [options.ndmin=0] - minimum number of dimensions\n* @param {string} [options.casting=\"safe\"] - casting rule used to determine what constitutes an acceptable cast\n* @param {boolean} [options.readonly=false] - boolean indicating if an array should be read-only\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {Error} must provide either an array shape, data source, or both\n* @throws {Error} invalid cast\n* @throws {RangeError} data source must be compatible with specified meta data\n* @returns {ndarray} ndarray instance\n*\n* @example\n* var arr = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var v = arr.get( 0, 0 );\n* // returns 1\n*\n* @example\n* var opts = {\n* 'dtype': 'generic',\n* 'flatten': false\n* };\n*\n* var arr = array( [ [ 1, 2 ], [ 3, 4 ] ], opts );\n* // returns \n*\n* var v = arr.get( 0 );\n* // returns [ 1, 2 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var opts = {\n* 'shape': [ 2, 2 ]\n* };\n*\n* var arr = array( new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ), opts );\n* // returns \n*\n* var v = arr.get( 0, 0 );\n* // returns 1.0\n*/\nfunction array() {\n\tvar options;\n\tvar strides;\n\tvar buffer;\n\tvar offset;\n\tvar order;\n\tvar dtype;\n\tvar btype;\n\tvar shape;\n\tvar ndims;\n\tvar nopts;\n\tvar opts;\n\tvar osh;\n\tvar len;\n\tvar ord;\n\tvar FLG;\n\n\tif ( arguments.length === 1 ) {\n\t\tif ( isArrayLikeObject( arguments[ 0 ] ) ) {\n\t\t\tbuffer = arguments[ 0 ];\n\t\t\toptions = {};\n\t\t} else {\n\t\t\toptions = arguments[ 0 ];\n\t\t\tif ( !isObject( options ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide either a valid data source, options argument, or both. Value: `%s`.', options ) );\n\t\t\t}\n\t\t\tif ( hasOwnProp( options, 'buffer' ) ) {\n\t\t\t\tbuffer = options.buffer;\n\t\t\t\tif ( !isArrayLikeObject( buffer ) ) { // weak test\n\t\t\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be an array-like object, typed-array-like, a Buffer, or an ndarray. Option: `%s`.', 'buffer', buffer ) );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {\n\t\tbuffer = arguments[ 0 ];\n\t\tif ( !isArrayLikeObject( buffer ) ) { // weak test\n\t\t\tthrow new TypeError( format( 'invalid option. Data source must be an array-like object, typed-array-like, a Buffer, or an ndarray. Value: `%s`.', buffer ) );\n\t\t}\n\t\toptions = arguments[ 1 ];\n\t\tif ( !isObject( options ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t\t}\n\t\t// Note: we ignore whether `options` has a `buffer` property\n\t}\n\tif ( buffer ) {\n\t\tif ( isndarrayLike( buffer ) ) {\n\t\t\tbtype = getDType( buffer );\n\t\t\tFLG = true;\n\t\t} else {\n\t\t\tbtype = getBufferDType( buffer );\n\t\t\tFLG = false;\n\t\t}\n\t}\n\tnopts = {};\n\topts = {};\n\n\t// Validate some options before others...\n\tif ( hasOwnProp( options, 'casting' ) ) {\n\t\topts.casting = options.casting;\n\t\tif ( !isCastingMode( opts.casting ) ) {\n\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a recognized casting mode. Option: `%s`.', 'casting', opts.casting ) );\n\t\t}\n\t} else {\n\t\topts.casting = defaults.casting;\n\t}\n\tif ( hasOwnProp( options, 'flatten' ) ) {\n\t\topts.flatten = options.flatten;\n\t\tif ( !isBoolean( opts.flatten ) ) {\n\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'flatten', opts.flatten ) );\n\t\t}\n\t} else {\n\t\topts.flatten = defaults.flatten;\n\t}\n\tif ( hasOwnProp( options, 'ndmin' ) ) {\n\t\topts.ndmin = options.ndmin;\n\t\tif ( !isNonNegativeInteger( opts.ndmin ) ) {\n\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a nonnegative integer. Option: `%s`.', 'ndmin', opts.ndmin ) );\n\t\t}\n\t\t// TODO: validate that minimum number of dimensions does not exceed the maximum number of possible dimensions (in theory, infinite; in practice, determined by max array length; see https://github.com/stdlib-js/stdlib/blob/ac350059877c036640775d6b30d0e98e840d07cf/lib/node_modules/%40stdlib/ndarray/ctor/lib/main.js#L57)\n\t} else {\n\t\topts.ndmin = defaults.ndmin;\n\t}\n\n\t// Validate the remaining options...\n\tif ( hasOwnProp( options, 'dtype' ) ) {\n\t\tdtype = options.dtype;\n\t\tif ( !isDataType( dtype ) ) {\n\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a recognized data type. Option: `%s`.', 'dtype', dtype ) );\n\t\t}\n\t\tif ( btype && !isAllowedCast( btype, dtype, opts.casting ) ) {\n\t\t\tthrow new Error( format( 'invalid option. Data type cast is not allowed. Casting mode: `%s`. From: `%s`. To: `%s`.', opts.casting, btype, dtype ) );\n\t\t}\n\t} else if ( btype ) {\n\t\t// TODO: reconcile difference in behavior when provided a generic array and no `dtype` option. Currently, we cast here, but do not allow casting a generic array (by default) when explicitly providing a `dtype` option.\n\n\t\t// Only cast generic array data sources when not provided an ndarray...\n\t\tif ( !FLG && btype === 'generic' ) {\n\t\t\tdtype = defaults.dtype;\n\t\t} else {\n\t\t\tdtype = btype;\n\t\t}\n\t} else {\n\t\tdtype = defaults.dtype;\n\t}\n\tif ( hasOwnProp( options, 'order' ) ) {\n\t\torder = options.order;\n\t\tif ( order === 'any' || order === 'same' ) {\n\t\t\tif ( FLG ) {\n\t\t\t\t// If the user indicated that \"any\" order suffices (meaning the user does not care about ndarray order), then we use the default order, unless the input ndarray is either unequivocally \"row-major\" or \"column-major\" or configured as such....\n\t\t\t\tif ( order === 'any' ) {\n\t\t\t\t\t// Compute the layout order in order to ascertain whether an ndarray can be considered both \"row-major\" and \"column-major\":\n\t\t\t\t\tord = strides2order( getStrides( buffer ) );\n\n\t\t\t\t\t// If the ndarray can be considered both \"row-major\" and \"column-major\", then use the default order; otherwise, use the ndarray's stated layout order...\n\t\t\t\t\tif ( ord === 3 ) {\n\t\t\t\t\t\torder = defaults.order;\n\t\t\t\t\t} else {\n\t\t\t\t\t\torder = getOrder( buffer );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Otherwise, use the same order as the provided ndarray...\n\t\t\t\telse if ( order === 'same' ) {\n\t\t\t\t\torder = getOrder( buffer );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\torder = defaults.order;\n\t\t\t}\n\t\t} else if ( !isOrder( order ) ) {\n\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a recognized order. Option: `%s`.', 'order', order ) );\n\t\t}\n\t} else {\n\t\torder = defaults.order;\n\t}\n\tif ( hasOwnProp( options, 'mode' ) ) {\n\t\tnopts.mode = options.mode;\n\t} else {\n\t\tnopts.mode = defaults.mode;\n\t}\n\tif ( hasOwnProp( options, 'submode' ) ) {\n\t\tnopts.submode = options.submode;\n\t} else {\n\t\tnopts.submode = [ nopts.mode ];\n\t}\n\tif ( hasOwnProp( options, 'readonly' ) ) {\n\t\tnopts.readonly = options.readonly;\n\t} else {\n\t\tnopts.readonly = defaults.readonly;\n\t}\n\tif ( hasOwnProp( options, 'copy' ) ) {\n\t\topts.copy = options.copy;\n\t\tif ( !isBoolean( opts.copy ) ) {\n\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'copy', opts.copy ) );\n\t\t}\n\t} else {\n\t\topts.copy = defaults.copy;\n\t}\n\t// If not provided a shape, infer from a provided data source...\n\tif ( hasOwnProp( options, 'shape' ) ) {\n\t\tshape = options.shape;\n\t\tif ( !isArrayLikeObject( shape ) ) { // weak test\n\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be an array-like object containing nonnegative integers. Option: `%s`.', 'shape', shape ) );\n\t\t}\n\t\tndims = shape.length;\n\t\tlen = numel( shape );\n\t} else if ( buffer ) {\n\t\tif ( FLG ) {\n\t\t\tshape = getShape( buffer );\n\t\t\tndims = shape.length;\n\t\t\tlen = numel( shape );\n\t\t} else if ( opts.flatten && isArray( buffer ) ) {\n\t\t\tshape = arrayShape( buffer );\n\t\t\tosh = shape; // cache a reference to the inferred shape\n\t\t\tndims = shape.length;\n\t\t\tlen = numel( shape );\n\t\t} else {\n\t\t\tndims = 1;\n\t\t\tlen = buffer.length;\n\t\t\tshape = [ len ]; // assume a 1-dimensional array (vector)\n\t\t}\n\t} else {\n\t\tthrow new Error( 'invalid arguments. Must provide either a data source, array shape, or both.' );\n\t}\n\t// Adjust the array shape to satisfy the minimum number of dimensions...\n\tif ( ndims < opts.ndmin ) {\n\t\tshape = expandShape( ndims, shape, opts.ndmin );\n\t\tndims = opts.ndmin;\n\t}\n\t// If not provided a data buffer, create it; otherwise, see if we need to cast a provided data buffer to another data type or perform a copy...\n\tif ( FLG ) {\n\t\tif ( numel( buffer.shape ) !== len ) {\n\t\t\tthrow new RangeError( 'invalid arguments. Array shape is incompatible with provided data source. Number of data source elements does not match array shape.' );\n\t\t}\n\t\tif ( btype !== dtype || opts.copy ) {\n\t\t\tbuffer = copyView( buffer, dtype );\n\t\t} else {\n\t\t\tstrides = getStrides( buffer );\n\t\t\toffset = getOffset( buffer );\n\t\t\tbuffer = getData( buffer );\n\t\t\tif ( strides.length < ndims ) {\n\t\t\t\t// Account for augmented dimensions (note: expanding the strides array to account for prepended singleton dimensions does **not** affect the index offset):\n\t\t\t\tstrides = expandStrides( ndims, shape, strides, order );\n\t\t\t}\n\t\t}\n\t} else if ( buffer ) {\n\t\tif ( btype === 'generic' && opts.flatten ) {\n\t\t\tbuffer = flatten( buffer, osh || arrayShape( buffer ), order === 'column-major' );\n\t\t}\n\t\tif ( buffer.length !== len ) {\n\t\t\tthrow new RangeError( 'invalid arguments. Array shape is incompatible with provided data source. Number of data source elements does not match array shape.' );\n\t\t}\n\t\tif ( btype !== dtype || opts.copy ) {\n\t\t\tbuffer = castBuffer( buffer, len, dtype );\n\t\t}\n\t} else {\n\t\tbuffer = createBuffer( dtype, len );\n\t}\n\t// If we have yet to determine array strides, we assume that we can compute the strides, along with the index offset, for a **contiguous** data source based solely on the array shape and specified memory layout order...\n\tif ( strides === void 0 ) {\n\t\tstrides = shape2strides( shape, order );\n\t\toffset = strides2offset( shape, strides );\n\t}\n\treturn new ndarray( dtype, buffer, shape, strides, offset, order, nopts );\n}\n\n\n// EXPORTS //\n\nmodule.exports = array;\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* Multidimensional array.\n*\n* @module @stdlib/ndarray/array\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var arr = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var v = arr.get( 0, 0 );\n* // returns 1\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var opts = {\n* 'dtype': 'generic',\n* 'flatten': false\n* };\n*\n* var arr = array( [ [ 1, 2 ], [ 3, 4 ] ], opts );\n* // returns \n*\n* var v = arr.get( 0 );\n* // returns [ 1, 2 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var opts = {\n* 'shape': [ 2, 2 ]\n* };\n*\n* var arr = array( new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ), opts );\n* // returns \n*\n* var v = arr.get( 0, 0 );\n* // returns 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 numel = require( './../../../../base/numel' );\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if a buffer length is compatible with a provided shape array.\n*\n* @param {NonNegativeInteger} len - buffer length\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {boolean} boolean indicating if a buffer length is compatible with a provided shape array\n*\n* @example\n* var shape = [ 2, 2 ];\n*\n* var bool = isBufferLengthCompatibleShape( 4, shape );\n* // returns true\n*\n* @example\n* var shape = [ 2, 2 ];\n*\n* var bool = isBufferLengthCompatibleShape( 3, shape );\n* // returns false\n*/\nfunction isBufferLengthCompatibleShape( len, shape ) { // eslint-disable-line id-length\n\treturn ( len >= numel( shape ) );\n}\n\n\n// EXPORTS //\n\nmodule.exports = isBufferLengthCompatibleShape;\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 boolean indicating if a buffer length is compatible with a provided shape array.\n*\n* @module @stdlib/ndarray/base/assert/is-buffer-length-compatible-shape\n*\n* @example\n* var isBufferLengthCompatibleShape = require( '@stdlib/ndarray/base/assert/is-buffer-length-compatible-shape' );\n*\n* var shape = [ 2, 2 ];\n*\n* var bool = isBufferLengthCompatibleShape( 10, shape );\n* // returns true\n*\n* @example\n* var isBufferLengthCompatibleShape = require( '@stdlib/ndarray/base/assert/is-buffer-length-compatible-shape' );\n*\n* var shape = [ 2, 2 ];\n*\n* var bool = isBufferLengthCompatibleShape( 3, shape );\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) 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 abs = require( '@stdlib/math/base/special/abs' );\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if an array is column-major based on a provided stride array.\n*\n* @param {IntegerArray} strides - stride array\n* @returns {boolean} boolean indicating if an array is column-major\n*\n* @example\n* var bool = isColumnMajor( [ 1, 2 ] );\n* // returns true\n*\n* bool = isColumnMajor( [ 2, 1 ] );\n* // returns false\n*/\nfunction isColumnMajor( strides ) {\n\tvar ndims;\n\tvar s1;\n\tvar s2;\n\tvar i;\n\n\tndims = strides.length;\n\tif ( ndims === 0 ) {\n\t\treturn false;\n\t}\n\ts1 = abs( strides[ 0 ] );\n\tfor ( i = 1; i < ndims; i++ ) {\n\t\ts2 = abs( strides[ i ] );\n\t\tif ( s2 < s1 ) {\n\t\t\treturn false;\n\t\t}\n\t\ts1 = s2;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nmodule.exports = isColumnMajor;\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* Given a stride array, determine whether an array is column-major.\n*\n* @module @stdlib/ndarray/base/assert/is-column-major\n*\n* @example\n* var isColumnMajor = require( '@stdlib/ndarray/base/assert/is-column-major' );\n*\n* var bool = isColumnMajor( [ 1, 2 ] );\n* // returns true\n*\n* bool = isColumnMajor( [ 2, 1 ] );\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) 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 numel = require( './../../../../base/numel' );\nvar minmax = require( './../../../../base/minmax-view-buffer-index' );\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if an array is compatible with a single memory segment.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @returns {boolean} boolean indicating if an array is compatible with a single memory segment\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var bool = isSingleSegmentCompatible( shape, strides, offset );\n* // returns true\n*\n* @example\n* var shape = [ 10 ];\n* var strides = [ 3 ];\n* var offset = 0;\n*\n* var bool = isSingleSegmentCompatible( shape, strides, offset );\n* // returns false\n*/\nfunction isSingleSegmentCompatible( shape, strides, offset ) {\n\tvar len;\n\tvar buf;\n\n\t// Compute the total number of elements:\n\tlen = numel( shape );\n\tif ( len === 0 ) {\n\t\treturn false;\n\t}\n\t// Determine the minimum and maximum linear indices which are accessible by the array view:\n\tbuf = minmax( shape, strides, offset );\n\n\treturn ( len === ( buf[1]-buf[0]+1 ) );\n}\n\n\n// EXPORTS //\n\nmodule.exports = isSingleSegmentCompatible;\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 boolean indicating if an array is compatible with a single memory segment.\n*\n* @module @stdlib/ndarray/base/assert/is-single-segment-compatible\n*\n* @example\n* var isSingleSegmentCompatible = require( '@stdlib/ndarray/base/assert/is-single-segment-compatible' );\n*\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var bool = isSingleSegmentCompatible( shape, strides, offset );\n* // returns true\n*\n* @example\n* var isSingleSegmentCompatible = require( '@stdlib/ndarray/base/assert/is-single-segment-compatible' );\n*\n* var shape = [ 10 ];\n* var strides = [ 3 ];\n* var offset = 0;\n*\n* var bool = isSingleSegmentCompatible( shape, strides, offset );\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) 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 isSingleSegmentCompatible = require( './../../../../base/assert/is-single-segment-compatible' );\nvar iterationOrder = require( './../../../../base/iteration-order' );\nvar isColumnMajor = require( './../../../../base/assert/is-column-major' );\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if an array is column-major contiguous.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @returns {boolean} boolean indicating if an array is column-major contiguous\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ 1, 2 ];\n* var offset = 0;\n*\n* var bool = isColumnMajorContiguous( shape, strides, offset );\n* // returns true\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ 1, -2 ];\n* var offset = 2;\n*\n* var bool = isColumnMajorContiguous( shape, strides, offset );\n* // returns false\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 2 ];\n* var offset = 0;\n*\n* var bool = isColumnMajorContiguous( shape, strides, offset );\n* // returns false\n*/\nfunction isColumnMajorContiguous( shape, strides, offset ) {\n\treturn (\n\t\titerationOrder( strides ) !== 0 &&\n\t\tisColumnMajor( strides ) &&\n\t\tisSingleSegmentCompatible( shape, strides, offset )\n\t);\n}\n\n\n// EXPORTS //\n\nmodule.exports = isColumnMajorContiguous;\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 if an array is column-major contiguous.\n*\n* @module @stdlib/ndarray/base/assert/is-column-major-contiguous\n*\n* @example\n* var isColumnMajorContiguous = require( '@stdlib/ndarray/base/assert/is-column-major-contiguous' );\n*\n* var shape = [ 2, 2 ];\n* var strides = [ 1, 2 ];\n* var offset = 0;\n*\n* var bool = isColumnMajorContiguous( shape, strides, offset );\n* // returns true\n*\n* @example\n* var isColumnMajorContiguous = require( '@stdlib/ndarray/base/assert/is-column-major-contiguous' );\n*\n* var shape = [ 2, 2 ];\n* var strides = [ 1, -2 ];\n* var offset = 2;\n*\n* var bool = isColumnMajorContiguous( shape, strides, offset );\n* // returns false\n*\n* @example\n* var isColumnMajorContiguous = require( '@stdlib/ndarray/base/assert/is-column-major-contiguous' );\n*\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 2 ];\n* var offset = 0;\n*\n* var bool = isColumnMajorContiguous( shape, strides, offset );\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 contains = require( '@stdlib/array/base/assert/contains' ).factory;\nvar dtypes = require( './../../../../dtypes' );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray complex-valued floating-point data type.\n*\n* @name isComplexFloatingPointDataType\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray complex-valued floating-point data type\n*\n* @example\n* var bool = isComplexFloatingPointDataType( 'binary' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'complex64' );\n* // returns true\n*\n* bool = isComplexFloatingPointDataType( 'complex128' );\n* // returns true\n*\n* bool = isComplexFloatingPointDataType( 'float32' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'float64' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'generic' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'int16' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'int32' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'int8' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint16' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint32' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint8' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint8c' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'foo' );\n* // returns false\n*/\nvar isComplexFloatingPointDataType = contains( dtypes( 'complex_floating_point' ) ); // eslint-disable-line id-length\n\n\n// EXPORTS //\n\nmodule.exports = isComplexFloatingPointDataType;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 whether an input value is a supported ndarray complex-valued floating-point data type.\n*\n* @module @stdlib/ndarray/base/assert/is-complex-floating-point-data-type\n*\n* @example\n* var isComplexFloatingPointDataType = require( '@stdlib/ndarray/base/assert/is-complex-floating-point-data-type' );\n*\n* var bool = isComplexFloatingPointDataType( 'binary' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'complex64' );\n* // returns true\n*\n* bool = isComplexFloatingPointDataType( 'complex128' );\n* // returns true\n*\n* bool = isComplexFloatingPointDataType( 'float32' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'float64' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'generic' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'int16' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'int32' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'int8' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint16' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint32' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint8' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint8c' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'foo' );\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) 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 isSingleSegmentCompatible = require( './../../../../base/assert/is-single-segment-compatible' );\nvar iterationOrder = require( './../../../../base/iteration-order' );\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if an array is contiguous.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @returns {boolean} boolean indicating if an array is contiguous\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var bool = isContiguous( shape, strides, offset );\n* // returns true\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ -2, 1 ];\n* var offset = 2;\n*\n* var bool = isContiguous( shape, strides, offset );\n* // returns false\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 2 ];\n* var offset = 0;\n*\n* var bool = isContiguous( shape, strides, offset );\n* // returns false\n*/\nfunction isContiguous( shape, strides, offset ) {\n\treturn (\n\t\titerationOrder( strides ) !== 0 &&\n\t\tisSingleSegmentCompatible( shape, strides, offset )\n\t);\n}\n\n\n// EXPORTS //\n\nmodule.exports = isContiguous;\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 if an array is contiguous.\n*\n* @module @stdlib/ndarray/base/assert/is-contiguous\n*\n* @example\n* var isContiguous = require( '@stdlib/ndarray/base/assert/is-contiguous' );\n*\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var bool = isContiguous( shape, strides, offset );\n* // returns true\n*\n* @example\n* var isContiguous = require( '@stdlib/ndarray/base/assert/is-contiguous' );\n*\n* var shape = [ 2, 2 ];\n* var strides = [ -2, 1 ];\n* var offset = 2;\n*\n* var bool = isContiguous( shape, strides, offset );\n* // returns false\n*\n* @example\n* var isContiguous = require( '@stdlib/ndarray/base/assert/is-contiguous' );\n*\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 2 ];\n* var offset = 0;\n*\n* var bool = isContiguous( shape, strides, offset );\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 contains = require( '@stdlib/array/base/assert/contains' ).factory;\nvar dtypes = require( './../../../../dtypes' );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray floating-point data type.\n*\n* @name isFloatingPointDataType\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray floating-point data type\n*\n* @example\n* var bool = isFloatingPointDataType( 'binary' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'float32' );\n* // returns true\n*\n* bool = isFloatingPointDataType( 'float64' );\n* // returns true\n*\n* bool = isFloatingPointDataType( 'generic' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'int16' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'int32' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'int8' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'uint16' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'uint32' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'uint8' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'uint8c' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'foo' );\n* // returns false\n*/\nvar isFloatingPointDataType = contains( dtypes( 'floating_point' ) );\n\n\n// EXPORTS //\n\nmodule.exports = isFloatingPointDataType;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 whether an input value is a supported ndarray floating-point data type.\n*\n* @module @stdlib/ndarray/base/assert/is-floating-point-data-type\n*\n* @example\n* var isFloatingPointDataType = require( '@stdlib/ndarray/base/assert/is-floating-point-data-type' );\n*\n* var bool = isFloatingPointDataType( 'binary' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'float32' );\n* // returns true\n*\n* bool = isFloatingPointDataType( 'float64' );\n* // returns true\n*\n* bool = isFloatingPointDataType( 'generic' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'int16' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'int32' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'int8' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'uint16' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'uint32' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'uint8' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'uint8c' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'foo' );\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 contains = require( '@stdlib/array/base/assert/contains' ).factory;\nvar dtypes = require( './../../../../dtypes' );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray integer data type.\n*\n* @name isIntegerDataType\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray integer data type\n*\n* @example\n* var bool = isIntegerDataType( 'binary' );\n* // returns false\n*\n* bool = isIntegerDataType( 'float32' );\n* // returns false\n*\n* bool = isIntegerDataType( 'float64' );\n* // returns false\n*\n* bool = isIntegerDataType( 'generic' );\n* // returns false\n*\n* bool = isIntegerDataType( 'int16' );\n* // returns true\n*\n* bool = isIntegerDataType( 'int32' );\n* // returns true\n*\n* bool = isIntegerDataType( 'int8' );\n* // returns true\n*\n* bool = isIntegerDataType( 'uint16' );\n* // returns true\n*\n* bool = isIntegerDataType( 'uint32' );\n* // returns true\n*\n* bool = isIntegerDataType( 'uint8' );\n* // returns true\n*\n* bool = isIntegerDataType( 'uint8c' );\n* // returns true\n*\n* bool = isIntegerDataType( 'foo' );\n* // returns false\n*/\nvar isIntegerDataType = contains( dtypes( 'integer' ) );\n\n\n// EXPORTS //\n\nmodule.exports = isIntegerDataType;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 whether an input value is a supported ndarray integer data type.\n*\n* @module @stdlib/ndarray/base/assert/is-integer-data-type\n*\n* @example\n* var isIntegerDataType = require( '@stdlib/ndarray/base/assert/is-integer-data-type' );\n*\n* var bool = isIntegerDataType( 'binary' );\n* // returns false\n*\n* bool = isIntegerDataType( 'float32' );\n* // returns false\n*\n* bool = isIntegerDataType( 'float64' );\n* // returns false\n*\n* bool = isIntegerDataType( 'generic' );\n* // returns false\n*\n* bool = isIntegerDataType( 'int16' );\n* // returns true\n*\n* bool = isIntegerDataType( 'int32' );\n* // returns true\n*\n* bool = isIntegerDataType( 'int8' );\n* // returns true\n*\n* bool = isIntegerDataType( 'uint16' );\n* // returns true\n*\n* bool = isIntegerDataType( 'uint32' );\n* // returns true\n*\n* bool = isIntegerDataType( 'uint8' );\n* // returns true\n*\n* bool = isIntegerDataType( 'uint8c' );\n* // returns true\n*\n* bool = isIntegerDataType( 'foo' );\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 contains = require( '@stdlib/array/base/assert/contains' ).factory;\nvar dtypes = require( './../../../../dtypes' );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray numeric data type.\n*\n* @name isNumericDataType\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray numeric data type\n*\n* @example\n* var bool = isNumericDataType( 'binary' );\n* // returns false\n*\n* bool = isNumericDataType( 'float32' );\n* // returns true\n*\n* bool = isNumericDataType( 'float64' );\n* // returns true\n*\n* bool = isNumericDataType( 'generic' );\n* // returns false\n*\n* bool = isNumericDataType( 'int16' );\n* // returns true\n*\n* bool = isNumericDataType( 'int32' );\n* // returns true\n*\n* bool = isNumericDataType( 'int8' );\n* // returns true\n*\n* bool = isNumericDataType( 'uint16' );\n* // returns true\n*\n* bool = isNumericDataType( 'uint32' );\n* // returns true\n*\n* bool = isNumericDataType( 'uint8' );\n* // returns true\n*\n* bool = isNumericDataType( 'uint8c' );\n* // returns true\n*\n* bool = isNumericDataType( 'foo' );\n* // returns false\n*/\nvar isNumericDataType = contains( dtypes( 'numeric' ) );\n\n\n// EXPORTS //\n\nmodule.exports = isNumericDataType;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 whether an input value is a supported ndarray numeric data type.\n*\n* @module @stdlib/ndarray/base/assert/is-numeric-data-type\n*\n* @example\n* var isNumericDataType = require( '@stdlib/ndarray/base/assert/is-numeric-data-type' );\n*\n* var bool = isNumericDataType( 'binary' );\n* // returns false\n*\n* bool = isNumericDataType( 'float32' );\n* // returns true\n*\n* bool = isNumericDataType( 'float64' );\n* // returns true\n*\n* bool = isNumericDataType( 'generic' );\n* // returns false\n*\n* bool = isNumericDataType( 'int16' );\n* // returns true\n*\n* bool = isNumericDataType( 'int32' );\n* // returns true\n*\n* bool = isNumericDataType( 'int8' );\n* // returns true\n*\n* bool = isNumericDataType( 'uint16' );\n* // returns true\n*\n* bool = isNumericDataType( 'uint32' );\n* // returns true\n*\n* bool = isNumericDataType( 'uint8' );\n* // returns true\n*\n* bool = isNumericDataType( 'uint8c' );\n* // returns true\n*\n* bool = isNumericDataType( 'foo' );\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// MAIN //\n\n/**\n* Tests whether an ndarray is read-only.\n*\n* @param {ndarray} arr - input ndarray\n* @returns {boolean} boolean indicating whether an ndarray is read-only\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var x = array( [ 1, 2, 3, 4 ], {\n* 'readonly': true\n* });\n* var bool = isReadOnly( x );\n* // returns true\n*\n* x = array( [ 1, 2, 3, 4 ] );\n* bool = isReadOnly( x );\n* // returns false\n*/\nfunction isReadOnly( arr ) {\n\tvar flags = arr.flags;\n\treturn ( flags && flags.READONLY === true );\n}\n\n\n// EXPORTS //\n\nmodule.exports = isReadOnly;\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 whether an ndarray is read-only.\n*\n* @module @stdlib/ndarray/base/assert/is-read-only\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n* var isReadOnly = require( '@stdlib/ndarray/base/assert/is-read-only' );\n*\n* var x = array( [ 1, 2, 3, 4 ], {\n* 'readonly': true\n* });\n* var bool = isReadOnly( x );\n* // returns true\n*\n* x = array( [ 1, 2, 3, 4 ] );\n* bool = isReadOnly( x );\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 contains = require( '@stdlib/array/base/assert/contains' ).factory;\nvar dtypes = require( './../../../../dtypes' );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray real-valued data type.\n*\n* @name isRealDataType\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray real-valued data type\n*\n* @example\n* var bool = isRealDataType( 'binary' );\n* // returns false\n*\n* bool = isRealDataType( 'float32' );\n* // returns true\n*\n* bool = isRealDataType( 'float64' );\n* // returns true\n*\n* bool = isRealDataType( 'complex128' );\n* // returns false\n*\n* bool = isRealDataType( 'generic' );\n* // returns false\n*\n* bool = isRealDataType( 'int16' );\n* // returns true\n*\n* bool = isRealDataType( 'int32' );\n* // returns true\n*\n* bool = isRealDataType( 'int8' );\n* // returns true\n*\n* bool = isRealDataType( 'uint16' );\n* // returns true\n*\n* bool = isRealDataType( 'uint32' );\n* // returns true\n*\n* bool = isRealDataType( 'uint8' );\n* // returns true\n*\n* bool = isRealDataType( 'uint8c' );\n* // returns true\n*\n* bool = isRealDataType( 'foo' );\n* // returns false\n*/\nvar isRealDataType = contains( dtypes( 'real' ) );\n\n\n// EXPORTS //\n\nmodule.exports = isRealDataType;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 whether an input value is a supported ndarray real-valued data type.\n*\n* @module @stdlib/ndarray/base/assert/is-real-data-type\n*\n* @example\n* var isRealDataType = require( '@stdlib/ndarray/base/assert/is-real-data-type' );\n*\n* var bool = isRealDataType( 'binary' );\n* // returns false\n*\n* bool = isRealDataType( 'float32' );\n* // returns true\n*\n* bool = isRealDataType( 'float64' );\n* // returns true\n*\n* bool = isRealDataType( 'complex128' );\n* // returns false\n*\n* bool = isRealDataType( 'generic' );\n* // returns false\n*\n* bool = isRealDataType( 'int16' );\n* // returns true\n*\n* bool = isRealDataType( 'int32' );\n* // returns true\n*\n* bool = isRealDataType( 'int8' );\n* // returns true\n*\n* bool = isRealDataType( 'uint16' );\n* // returns true\n*\n* bool = isRealDataType( 'uint32' );\n* // returns true\n*\n* bool = isRealDataType( 'uint8' );\n* // returns true\n*\n* bool = isRealDataType( 'uint8c' );\n* // returns true\n*\n* bool = isRealDataType( 'foo' );\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 contains = require( '@stdlib/array/base/assert/contains' ).factory;\nvar dtypes = require( './../../../../dtypes' );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray real-valued floating-point data type.\n*\n* @name isRealFloatingPointDataType\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray real-valued floating-point data type\n*\n* @example\n* var bool = isRealFloatingPointDataType( 'binary' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'float32' );\n* // returns true\n*\n* bool = isRealFloatingPointDataType( 'float64' );\n* // returns true\n*\n* bool = isRealFloatingPointDataType( 'generic' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'int16' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'int32' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'int8' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'uint16' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'uint32' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'uint8' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'uint8c' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'foo' );\n* // returns false\n*/\nvar isRealFloatingPointDataType = contains( dtypes( 'real_floating_point' ) ); // eslint-disable-line id-length\n\n\n// EXPORTS //\n\nmodule.exports = isRealFloatingPointDataType;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 whether an input value is a supported ndarray real-valued floating-point data type.\n*\n* @module @stdlib/ndarray/base/assert/is-real-floating-point-data-type\n*\n* @example\n* var isRealFloatingPointDataType = require( '@stdlib/ndarray/base/assert/is-real-floating-point-data-type' );\n*\n* var bool = isRealFloatingPointDataType( 'binary' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'float32' );\n* // returns true\n*\n* bool = isRealFloatingPointDataType( 'float64' );\n* // returns true\n*\n* bool = isRealFloatingPointDataType( 'generic' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'int16' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'int32' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'int8' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'uint16' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'uint32' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'uint8' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'uint8c' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'foo' );\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) 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 abs = require( '@stdlib/math/base/special/abs' );\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if an array is row-major based on a provided stride array.\n*\n* @param {IntegerArray} strides - stride array\n* @returns {boolean} boolean indicating if an array is row-major\n*\n* @example\n* var bool = isRowMajor( [ 2, 1 ] );\n* // returns true\n*\n* bool = isRowMajor( [ 1, 2 ] );\n* // returns false\n*/\nfunction isRowMajor( strides ) {\n\tvar ndims;\n\tvar s1;\n\tvar s2;\n\tvar i;\n\n\tndims = strides.length;\n\tif ( ndims === 0 ) {\n\t\treturn false;\n\t}\n\ts1 = abs( strides[ 0 ] );\n\tfor ( i = 1; i < ndims; i++ ) {\n\t\ts2 = abs( strides[ i ] );\n\t\tif ( s2 > s1 ) {\n\t\t\treturn false;\n\t\t}\n\t\ts1 = s2;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nmodule.exports = isRowMajor;\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* Given a stride array, determine whether an array is row-major.\n*\n* @module @stdlib/ndarray/base/assert/is-row-major\n*\n* @example\n* var isRowMajor = require( '@stdlib/ndarray/base/assert/is-row-major' );\n*\n* var bool = isRowMajor( [ 2, 1 ] );\n* // returns true\n*\n* bool = isRowMajor( [ 1, 2 ] );\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) 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 isSingleSegmentCompatible = require( './../../../../base/assert/is-single-segment-compatible' );\nvar iterationOrder = require( './../../../../base/iteration-order' );\nvar isRowMajor = require( './../../../../base/assert/is-row-major' );\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if an array is row-major contiguous.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @returns {boolean} boolean indicating if an array is row-major contiguous\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var bool = isRowMajorContiguous( shape, strides, offset );\n* // returns true\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ -2, 1 ];\n* var offset = 2;\n*\n* var bool = isRowMajorContiguous( shape, strides, offset );\n* // returns false\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 2 ];\n* var offset = 0;\n*\n* var bool = isRowMajorContiguous( shape, strides, offset );\n* // returns false\n*/\nfunction isRowMajorContiguous( shape, strides, offset ) {\n\treturn (\n\t\titerationOrder( strides ) !== 0 &&\n\t\tisRowMajor( strides ) &&\n\t\tisSingleSegmentCompatible( shape, strides, offset )\n\t);\n}\n\n\n// EXPORTS //\n\nmodule.exports = isRowMajorContiguous;\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 if an array is row-major contiguous.\n*\n* @module @stdlib/ndarray/base/assert/is-row-major-contiguous\n*\n* @example\n* var isRowMajorContiguous = require( '@stdlib/ndarray/base/assert/is-row-major-contiguous' );\n*\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var bool = isRowMajorContiguous( shape, strides, offset );\n* // returns true\n*\n* @example\n* var isRowMajorContiguous = require( '@stdlib/ndarray/base/assert/is-row-major-contiguous' );\n*\n* var shape = [ 2, 2 ];\n* var strides = [ -2, 1 ];\n* var offset = 2;\n*\n* var bool = isRowMajorContiguous( shape, strides, offset );\n* // returns false\n*\n* @example\n* var isRowMajorContiguous = require( '@stdlib/ndarray/base/assert/is-row-major-contiguous' );\n*\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 2 ];\n* var offset = 0;\n*\n* var bool = isRowMajorContiguous( shape, strides, offset );\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 contains = require( '@stdlib/array/base/assert/contains' ).factory;\nvar dtypes = require( './../../../../dtypes' );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray signed integer data type.\n*\n* @name isSignedIntegerDataType\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray signed integer data type\n*\n* @example\n* var bool = isSignedIntegerDataType( 'binary' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'float32' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'float64' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'generic' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'int16' );\n* // returns true\n*\n* bool = isSignedIntegerDataType( 'int32' );\n* // returns true\n*\n* bool = isSignedIntegerDataType( 'int8' );\n* // returns true\n*\n* bool = isSignedIntegerDataType( 'uint16' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'uint32' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'uint8' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'uint8c' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'foo' );\n* // returns false\n*/\nvar isSignedIntegerDataType = contains( dtypes( 'signed_integer' ) );\n\n\n// EXPORTS //\n\nmodule.exports = isSignedIntegerDataType;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 whether an input value is a supported ndarray signed integer data type.\n*\n* @module @stdlib/ndarray/base/assert/is-signed-integer-data-type\n*\n* @example\n* var isSignedIntegerDataType = require( '@stdlib/ndarray/base/assert/is-signed-integer-data-type' );\n*\n* var bool = isSignedIntegerDataType( 'binary' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'float32' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'float64' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'generic' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'int16' );\n* // returns true\n*\n* bool = isSignedIntegerDataType( 'int32' );\n* // returns true\n*\n* bool = isSignedIntegerDataType( 'int8' );\n* // returns true\n*\n* bool = isSignedIntegerDataType( 'uint16' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'uint32' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'uint8' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'uint8c' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'foo' );\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 contains = require( '@stdlib/array/base/assert/contains' ).factory;\nvar dtypes = require( './../../../../dtypes' );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray unsigned integer data type.\n*\n* @name isUnsignedIntegerDataType\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray unsigned integer data type\n*\n* @example\n* var bool = isUnsignedIntegerDataType( 'binary' );\n* // returns false\n*\n* bool = isUnsignedIntegerDataType( 'float32' );\n* // returns false\n*\n* bool = isUnsignedIntegerDataType( 'float64' );\n* // returns false\n*\n* bool = isUnsignedIntegerDataType( 'generic' );\n* // returns false\n*\n* bool = isUnsignedIntegerDataType( 'int16' );\n* // returns false\n*\n* bool = isUnsignedIntegerDataType( 'int32' );\n* // returns false\n*\n* bool = isUnsignedIntegerDataType( 'int8' );\n* // returns false\n*\n* bool = isUnsignedIntegerDataType( 'uint16' );\n* // returns true\n*\n* bool = isUnsignedIntegerDataType( 'uint32' );\n* // returns true\n*\n* bool = isUnsignedIntegerDataType( 'uint8' );\n* // returns true\n*\n* bool = isUnsignedIntegerDataType( 'uint8c' );\n* // returns true\n*\n* bool = isUnsignedIntegerDataType( 'foo' );\n* // returns false\n*/\nvar isUnsignedIntegerDataType = contains( dtypes( 'unsigned_integer' ) );\n\n\n// EXPORTS //\n\nmodule.exports = isUnsignedIntegerDataType;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 whether an input value is a supported ndarray unsigned integer data type.\n*\n* @module @stdlib/ndarray/base/assert/is-unsigned-integer-data-type\n*\n* @example\n* var isUnsignedIntegerDataType = require( '@stdlib/ndarray/base/assert/is-unsigned-integer-data-type' );\n*\n* var bool = isUnsignedIntegerDataType( 'binary' );\n* // returns false\n*\n* bool = isUnsignedIntegerDataType( 'float32' );\n* // returns false\n*\n* bool = isUnsignedIntegerDataType( 'float64' );\n* // returns false\n*\n* bool = isUnsignedIntegerDataType( 'generic' );\n* // returns false\n*\n* bool = isUnsignedIntegerDataType( 'int16' );\n* // returns false\n*\n* bool = isUnsignedIntegerDataType( 'int32' );\n* // returns false\n*\n* bool = isUnsignedIntegerDataType( 'int8' );\n* // returns false\n*\n* bool = isUnsignedIntegerDataType( 'uint16' );\n* // returns true\n*\n* bool = isUnsignedIntegerDataType( 'uint32' );\n* // returns true\n*\n* bool = isUnsignedIntegerDataType( 'uint8' );\n* // returns true\n*\n* bool = isUnsignedIntegerDataType( 'uint8c' );\n* // returns true\n*\n* bool = isUnsignedIntegerDataType( 'foo' );\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) 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// 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 isAllowedDataTypeCast\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-allowed-data-type-cast}\n*/\nsetReadOnly( ns, 'isAllowedDataTypeCast', require( './../../../base/assert/is-allowed-data-type-cast' ) );\n\n/**\n* @name isBufferLengthCompatible\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-buffer-length-compatible}\n*/\nsetReadOnly( ns, 'isBufferLengthCompatible', require( './../../../base/assert/is-buffer-length-compatible' ) );\n\n/**\n* @name isBufferLengthCompatibleShape\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-buffer-length-compatible-shape}\n*/\nsetReadOnly( ns, 'isBufferLengthCompatibleShape', require( './../../../base/assert/is-buffer-length-compatible-shape' ) );\n\n/**\n* @name isCastingMode\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-casting-mode}\n*/\nsetReadOnly( ns, 'isCastingMode', require( './../../../base/assert/is-casting-mode' ) );\n\n/**\n* @name isColumnMajor\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-column-major}\n*/\nsetReadOnly( ns, 'isColumnMajor', require( './../../../base/assert/is-column-major' ) );\n\n/**\n* @name isColumnMajorContiguous\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-column-major-contiguous}\n*/\nsetReadOnly( ns, 'isColumnMajorContiguous', require( './../../../base/assert/is-column-major-contiguous' ) );\n\n/**\n* @name isComplexFloatingPointDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-complex-floating-point-data-type}\n*/\nsetReadOnly( ns, 'isComplexFloatingPointDataType', require( './../../../base/assert/is-complex-floating-point-data-type' ) );\n\n/**\n* @name isContiguous\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-contiguous}\n*/\nsetReadOnly( ns, 'isContiguous', require( './../../../base/assert/is-contiguous' ) );\n\n/**\n* @name isDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-data-type}\n*/\nsetReadOnly( ns, 'isDataType', require( './../../../base/assert/is-data-type' ) );\n\n/**\n* @name isFloatingPointDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-floating-point-data-type}\n*/\nsetReadOnly( ns, 'isFloatingPointDataType', require( './../../../base/assert/is-floating-point-data-type' ) );\n\n/**\n* @name isIndexMode\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-index-mode}\n*/\nsetReadOnly( ns, 'isIndexMode', require( './../../../base/assert/is-index-mode' ) );\n\n/**\n* @name isIntegerDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-integer-data-type}\n*/\nsetReadOnly( ns, 'isIntegerDataType', require( './../../../base/assert/is-integer-data-type' ) );\n\n/**\n* @name isMostlySafeDataTypeCast\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-mostly-safe-data-type-cast}\n*/\nsetReadOnly( ns, 'isMostlySafeDataTypeCast', require( './../../../base/assert/is-mostly-safe-data-type-cast' ) );\n\n/**\n* @name isNumericDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-numeric-data-type}\n*/\nsetReadOnly( ns, 'isNumericDataType', require( './../../../base/assert/is-numeric-data-type' ) );\n\n/**\n* @name isOrder\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-order}\n*/\nsetReadOnly( ns, 'isOrder', require( './../../../base/assert/is-order' ) );\n\n/**\n* @name isReadOnly\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-read-only}\n*/\nsetReadOnly( ns, 'isReadOnly', require( './../../../base/assert/is-read-only' ) );\n\n/**\n* @name isRealDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-real-data-type}\n*/\nsetReadOnly( ns, 'isRealDataType', require( './../../../base/assert/is-real-data-type' ) );\n\n/**\n* @name isRealFloatingPointDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-real-floating-point-data-type}\n*/\nsetReadOnly( ns, 'isRealFloatingPointDataType', require( './../../../base/assert/is-real-floating-point-data-type' ) );\n\n/**\n* @name isRowMajor\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-row-major}\n*/\nsetReadOnly( ns, 'isRowMajor', require( './../../../base/assert/is-row-major' ) );\n\n/**\n* @name isRowMajorContiguous\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-row-major-contiguous}\n*/\nsetReadOnly( ns, 'isRowMajorContiguous', require( './../../../base/assert/is-row-major-contiguous' ) );\n\n/**\n* @name isSafeDataTypeCast\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-safe-data-type-cast}\n*/\nsetReadOnly( ns, 'isSafeDataTypeCast', require( './../../../base/assert/is-safe-data-type-cast' ) );\n\n/**\n* @name isSameKindDataTypeCast\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-same-kind-data-type-cast}\n*/\nsetReadOnly( ns, 'isSameKindDataTypeCast', require( './../../../base/assert/is-same-kind-data-type-cast' ) );\n\n/**\n* @name isSignedIntegerDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-signed-integer-data-type}\n*/\nsetReadOnly( ns, 'isSignedIntegerDataType', require( './../../../base/assert/is-signed-integer-data-type' ) );\n\n/**\n* @name isSingleSegmentCompatible\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-single-segment-compatible}\n*/\nsetReadOnly( ns, 'isSingleSegmentCompatible', require( './../../../base/assert/is-single-segment-compatible' ) );\n\n/**\n* @name isUnsignedIntegerDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-unsigned-integer-data-type}\n*/\nsetReadOnly( ns, 'isUnsignedIntegerDataType', require( './../../../base/assert/is-unsigned-integer-data-type' ) );\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* Returns the data type of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @returns {string} data type\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n*\n* var x = zeros( [ 3, 3, 3 ], {\n* 'dtype': 'float64'\n* });\n*\n* var dt = dtype( x );\n* // returns 'float64'\n*/\nfunction dtype( x ) {\n\treturn x.dtype;\n}\n\n\n// EXPORTS //\n\nmodule.exports = dtype;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 a provided ndarray.\n*\n* @module @stdlib/ndarray/base/dtype\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n* var dtype = require( '@stdlib/ndarray/base/dtype' );\n*\n* var x = zeros( [ 3, 3, 3 ], {\n* 'dtype': 'float64'\n* });\n*\n* var dt = dtype( x );\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 copyIndexed = require( '@stdlib/array/base/copy-indexed' );\n\n\n// MAIN //\n\n/**\n* Returns the shape of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @param {boolean} copy - boolean indicating whether to explicitly copy the value assigned to the input ndarray's `shape` property\n* @returns {NonNegativeIntegerArray} shape\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n*\n* var out = shape( zeros( [ 3, 3, 3 ] ), false );\n* // returns [ 3, 3, 3 ]\n*/\nfunction shape( x, copy ) {\n\tvar sh = x.shape;\n\tif ( copy ) {\n\t\treturn copyIndexed( sh );\n\t}\n\treturn sh;\n}\n\n\n// EXPORTS //\n\nmodule.exports = shape;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 shape of a provided ndarray.\n*\n* @module @stdlib/ndarray/base/shape\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n* var shape = require( '@stdlib/ndarray/base/shape' );\n*\n* var sh = shape( zeros( [ 3, 3, 3 ] ), false );\n* // returns [ 3, 3, 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'use strict';\n\n// MODULES //\n\nvar shape2strides = require( './../../../base/shape2strides' );\nvar copyIndexed = require( '@stdlib/array/base/copy-indexed' );\n\n\n// VARIABLES //\n\nvar ROW_MAJOR = 'row-major';\n\n\n// MAIN //\n\n/**\n* Returns the strides of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @param {boolean} copy - boolean indicating whether to explicitly copy the value assigned to the input ndarray's `strides` property\n* @returns {IntegerArray} strides\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n*\n* var out = strides( zeros( [ 3, 3, 3 ] ), false );\n* // returns [ 9, 3, 1 ]\n*/\nfunction strides( x, copy ) {\n\tvar ord;\n\tvar sh;\n\tvar st;\n\n\tst= x.strides;\n\tif ( typeof st !== 'object' || st === null ) {\n\t\tsh = x.shape;\n\t\tif ( sh.length === 0 ) {\n\t\t\treturn [ 0 ];\n\t\t}\n\t\tord = x.order;\n\t\tif ( typeof ord !== 'string' ) {\n\t\t\tord = ROW_MAJOR;\n\t\t}\n\t\treturn shape2strides( sh, ord );\n\t}\n\tif ( copy ) {\n\t\treturn copyIndexed( st );\n\t}\n\treturn st;\n}\n\n\n// EXPORTS //\n\nmodule.exports = strides;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 strides of a provided ndarray.\n*\n* @module @stdlib/ndarray/base/strides\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n* var strides = require( '@stdlib/ndarray/base/strides' );\n*\n* var st = strides( zeros( [ 3, 3, 3 ] ), false );\n* // returns [ 9, 3, 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// MODULES //\n\nvar strides2offset = require( './../../../base/strides2offset' );\n\n\n// MAIN //\n\n/**\n* Returns the index offset specifying the underlying buffer index of the first iterated ndarray element.\n*\n* @param {ndarrayLike} x - input ndarray\n* @returns {NonNegativeInteger} index offset\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n*\n* var n = offset( zeros( [ 3, 3, 3 ] ) );\n* // returns 0\n*/\nfunction offset( x ) {\n\tvar st;\n\tvar sh;\n\tvar o;\n\n\to = x.offset;\n\tif ( typeof o === 'number' ) {\n\t\treturn o;\n\t}\n\tsh = x.shape;\n\tif ( sh.length === 0 ) {\n\t\treturn 0;\n\t}\n\tst = x.strides;\n\tif ( typeof st !== 'object' || st === null ) {\n\t\treturn 0;\n\t}\n\treturn strides2offset( sh, st );\n}\n\n\n// EXPORTS //\n\nmodule.exports = offset;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 index offset specifying the underlying buffer index of the first iterated ndarray element.\n*\n* @module @stdlib/ndarray/base/offset\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n* var offset = require( '@stdlib/ndarray/base/offset' );\n*\n* var n = offset( zeros( [ 3, 3, 3 ] ) );\n* // returns 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 strides2order = require( './../../../base/strides2order' );\n\n\n// VARIABLES //\n\nvar ROW_MAJOR = 'row-major';\nvar COLUMN_MAJOR = 'column-major';\n\n\n// MAIN //\n\n/**\n* Returns the layout order of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @returns {(string|null)} layout order\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n*\n* var x = zeros( [ 3, 3, 3 ], {\n* 'order': 'row-major'\n* });\n*\n* var out = order( x );\n* // returns 'row-major'\n*/\nfunction order( x ) {\n\tvar st;\n\tvar o;\n\n\to = x.order;\n\tif ( typeof o === 'string' ) {\n\t\treturn o;\n\t}\n\t// Try to infer the layout order from the strides array...\n\tst = x.strides;\n\tif ( typeof st !== 'object' || st === null ) {\n\t\treturn ROW_MAJOR; // WARNING: default to row-major for ndarray-like objects lacking strides. This may or may not be accurate, and we're defaulting to row-major here based on the belief that row-major is more likely given that, e.g., JavaScript arrays are similar to C arrays (i.e., stored in row-major order).\n\t}\n\to = strides2order( st );\n\tif ( o === 1 || o === 3 ) {\n\t\treturn ROW_MAJOR; // for o == 3 (both row- and column-major; e.g., one-dimensional ndarrays), default to row-major\n\t}\n\tif ( o === 2 ) {\n\t\treturn COLUMN_MAJOR;\n\t}\n\t// o === 0\n\tif ( x.shape.length === 0 ) {\n\t\treturn ROW_MAJOR; // default to row-major for zero-dimensional ndarrays\n\t}\n\t// Case: mixed strides (e.g., [ 2, 3, 1 ] )\n\treturn null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = order;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 layout order of a provided ndarray.\n*\n* @module @stdlib/ndarray/base/order\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n* var order = require( '@stdlib/ndarray/base/order' );\n*\n* var x = zeros( [ 3, 3, 3 ], {\n* 'order': 'row-major'\n* });\n*\n* var out = order( x );\n* // returns 'row-major'\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 the underlying data buffer of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @returns {Collection} underlying data buffer\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n*\n* var x = zeros( [ 3, 3, 3 ], {\n* 'dtype': 'float64'\n* });\n*\n* var out = data( x );\n* // returns \n*/\nfunction data( x ) {\n\treturn x.data;\n}\n\n\n// EXPORTS //\n\nmodule.exports = data;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 underlying data buffer of a provided ndarray.\n*\n* @module @stdlib/ndarray/base/data-buffer\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n* var data = require( '@stdlib/ndarray/base/data-buffer' );\n*\n* var x = zeros( [ 3, 3, 3 ], {\n* 'dtype': 'float64'\n* });\n*\n* var out = data( x );\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 isAccessorArray = require( '@stdlib/array/base/assert/is-accessor-array' );\nvar accessorGetter = require( '@stdlib/array/base/accessor-getter' );\nvar accessorSetter = require( '@stdlib/array/base/accessor-setter' );\nvar getter = require( '@stdlib/array/base/getter' );\nvar setter = require( '@stdlib/array/base/setter' );\nvar numel = require( './../../../base/numel' );\nvar getDType = require( './../../../base/dtype' );\nvar getShape = require( './../../../base/shape' );\nvar getStrides = require( './../../../base/strides' );\nvar getOffset = require( './../../../base/offset' );\nvar getOrder = require( './../../../base/order' );\nvar getData = require( './../../../base/data-buffer' );\n\n\n// MAIN //\n\n/**\n* Converts an ndarray-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 ndarray meta data to ensure that internal functions operating on ndarrays are provided consistent argument \"shapes\".\n*\n* - The returned object has the following properties:\n*\n* - **ref**: reference to the original ndarray-like object.\n* - **dtype**: underlying data type.\n* - **data**: data buffer.\n* - **length**: number of elements.\n* - **shape**: array dimensions.\n* - **strides**: array strides.\n* - **offset**: index offset.\n* - **order**: order.\n* - **accessorProtocol**: `boolean` indicating whether the data buffer 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 ndarray element and whose second element is an accessor for setting an ndarray element.\n*\n* @param {ndarrayLike} x - ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {Object} object containing ndarray meta data\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var x = array( [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] );\n*\n* var obj = ndarraylike2object( x );\n* // returns {...}\n*/\nfunction ndarraylike2object( x ) {\n\tvar xbuf;\n\tvar bool;\n\tvar sh;\n\tvar dt;\n\n\txbuf = getData( x );\n\tsh = getShape( x, true );\n\tdt = getDType( x );\n\n\tbool = isAccessorArray( xbuf );\n\n\treturn {\n\t\t'ref': x,\n\t\t'dtype': dt,\n\t\t'data': xbuf,\n\t\t'length': numel( sh ),\n\t\t'shape': sh,\n\t\t'strides': getStrides( x, true ),\n\t\t'offset': getOffset( x ),\n\t\t'order': getOrder( x ),\n\t\t'accessorProtocol': bool,\n\t\t'accessors': ( bool ) ?\n\t\t\t[ accessorGetter( dt ), accessorSetter( dt ) ] :\n\t\t\t[ getter( dt ), setter( dt ) ]\n\t};\n}\n\n\n// EXPORTS //\n\nmodule.exports = ndarraylike2object;\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 ndarray-like object to an object likely to have the same \"shape\".\n*\n* @module @stdlib/ndarray/base/ndarraylike2object\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n* var ndarraylike2object = require( '@stdlib/ndarray/base/ndarraylike2object' );\n*\n* var x = array( [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] );\n*\n* var obj = ndarraylike2object( x );\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// MAIN //\n\n/**\n* Simultaneously sorts two arrays based on the sort order of the first array using insertion sort.\n*\n* ## Notes\n*\n* - The first array is sorted in increasing order according to absolute value.\n* - The algorithm has space complexity `O(1)` and worst case time complexity `O(N^2)`.\n* - The algorithm is efficient for small arrays (typically `N <= 20``) and is particularly efficient for sorting arrays which are already substantially sorted.\n* - The algorithm is **stable**, meaning that the algorithm does **not** change the order of array elements which are equal or equivalent.\n* - The input arrays are sorted in-place (i.e., the input arrays are mutated).\n*\n* @private\n* @param {Array} x - first array\n* @param {Array} y - second array\n* @returns {void}\n*\n* @example\n* var x = [ -4, -2, 3, 1 ];\n* var y = [ 0, 1, 2, 3 ];\n*\n* sort2ins( x, y );\n*\n* console.log( x );\n* // => [ 1, -2, 3, -4 ]\n*\n* console.log( y );\n* // => [ 3, 1, 2, 0 ]\n*/\nfunction sort2ins( x, y ) {\n\tvar avx;\n\tvar aux;\n\tvar ix;\n\tvar iy;\n\tvar jx;\n\tvar jy;\n\tvar vx;\n\tvar vy;\n\tvar ux;\n\tvar i;\n\n\tix = 1;\n\tiy = 1;\n\n\t// Sort in increasing order...\n\tfor ( i = 1; i < x.length; i++ ) {\n\t\tvx = x[ ix ];\n\t\tavx = ( vx < 0 ) ? -vx : vx;\n\n\t\tvy = y[ iy ];\n\n\t\tjx = ix - 1;\n\t\tjy = iy - 1;\n\n\t\t// Shift all larger values to the left of the current element to the right...\n\t\twhile ( jx >= 0 ) {\n\t\t\tux = x[ jx ];\n\t\t\taux = ( ux < 0 ) ? -ux : ux;\n\t\t\tif ( aux <= avx ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tx[ jx+1 ] = ux;\n\t\t\ty[ jy+1 ] = y[ jy ];\n\t\t\tjx -= 1;\n\t\t\tjy -= 1;\n\t\t}\n\t\tx[ jx+1 ] = vx;\n\t\ty[ jy+1 ] = vy;\n\t\tix += 1;\n\t\tiy += 1;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = sort2ins;\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 zeroTo = require( '@stdlib/array/base/zero-to' );\nvar copy = require( '@stdlib/array/base/copy-indexed' );\nvar take = require( '@stdlib/array/base/take-indexed' );\nvar sort2ins = require( './sort2ins.js' );\n\n\n// MAIN //\n\n/**\n* Reorders ndarray dimensions and associated strides for loop interchange.\n*\n* ## Notes\n*\n* - The returned object has the following properties:\n*\n* - **sh**: dimensions sorted in loop order.\n* - **sx**: input ndarray strides sorted in loop order.\n* - **sy**: output ndarray strides sorted in loop order.\n*\n* @param {NonNegativeIntegerArray} sh - array dimensions\n* @param {IntegerArray} sx - input array stride lengths\n* @param {IntegerArray} sy - output array stride lengths\n* @returns {Object} loop interchange data\n*\n* @example\n* var sh = [ 2, 3, 4 ];\n*\n* var sx = [ 12, 4, 1 ]; // row-major\n* var sy = [ 1, -2, 6 ]; // column-major\n*\n* var o = loopOrder( sh, sx, sy );\n* // returns {...}\n*\n* var ssh = o.sh;\n* // returns [ 4, 3, 2 ]\n*\n* var ssx = o.sx;\n* // returns [ 1, 4, 12 ]\n*\n* var ssy = o.sy;\n* // returns [ 6, -2, 1 ]\n*/\nfunction loopOrder( sh, sx, sy ) {\n\tvar idx;\n\n\t// Initialize a loop interchange index array for generating a loop order permutation:\n\tidx = zeroTo( sh.length );\n\n\t// Sort the input array strides in increasing order (of magnitude):\n\tsx = copy( sx );\n\tsort2ins( sx, idx );\n\n\t// Permute the shape and output array strides based on the sorted input array strides:\n\tsh = take( sh, idx );\n\tsy = take( sy, idx );\n\n\treturn {\n\t\t'sh': sh,\n\t\t'sx': sx,\n\t\t'sy': sy\n\t};\n}\n\n\n// EXPORTS //\n\nmodule.exports = loopOrder;\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* Reorder ndarray dimensions and associated strides for loop interchange.\n*\n* @module @stdlib/ndarray/base/unary-loop-interchange-order\n*\n* @example\n* var unaryLoopOrder = require( '@stdlib/ndarray/base/unary-loop-interchange-order' );\n*\n* var sh = [ 2, 3, 4 ];\n*\n* var sx = [ 12, 4, 1 ]; // row-major\n* var sy = [ 1, -2, 6 ]; // column-major\n*\n* var o = unaryLoopOrder( sh, sx, sy );\n* // returns {...}\n*\n* var ssh = o.sh;\n* // returns [ 4, 3, 2 ]\n*\n* var ssx = o.sx;\n* // returns [ 1, 4, 12 ]\n*\n* var ssy = o.sy;\n* // returns [ 6, -2, 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// MAIN //\n\nvar defaults = {\n\t// Define a default block size (in bytes):\n\t'BLOCK_SIZE_IN_BYTES': 64|0, // 64b is a common cache line size. How applicable the common cache line size is here is debatable, given that, depending on the associated stride(s), the innermost loop may not iterate over adjacent elements. The primary goal is to have a block size in which all data within a block can always fit in (L1) cache, regardless of cache size (i.e., cache-oblivious). For reference, a common L1 cache size is 32kB per core. For best performance, block sizes should be tuned based on system hardware; however, such tuning is not readily available to us here. Without obvious better alternatives, 64b has some theoretical (and practical) underpinning, and it should be good enough for most inputs, especially for ndarrays with near contiguity.\n\n\t// Define a default block size (in elements):\n\t'BLOCK_SIZE_IN_ELEMENTS': 8|0 // 64 bytes / 8 bytes per element (i.e., default element size is same as a double)\n};\n\n\n// EXPORTS //\n\nmodule.exports = defaults;\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 bytesPerElement = require( './../../../base/bytes-per-element' );\nvar defaults = require( './defaults.js' );\n\n\n// MAIN //\n\n/**\n* Returns a loop block size for multi-dimensional array tiled loops.\n*\n* @param {string} dtypeX - input array data type\n* @param {string} dtypeY - output array data type\n* @returns {integer} block size (in units of elements)\n*\n* @example\n* var bsize = unaryBlockSize( 'float64', 'float64' );\n* // returns \n*/\nfunction unaryBlockSize( dtypeX, dtypeY ) {\n\tvar nbx;\n\tvar nby;\n\n\tnbx = bytesPerElement( dtypeX );\n\tnby = bytesPerElement( dtypeY );\n\tif ( nbx === null || nby === null ) { // e.g., \"generic\" arrays\n\t\treturn defaults.BLOCK_SIZE_IN_ELEMENTS;\n\t}\n\tif ( nbx > nby ) {\n\t\treturn ( defaults.BLOCK_SIZE_IN_BYTES/nbx )|0; // asm type annotation\n\t}\n\treturn ( defaults.BLOCK_SIZE_IN_BYTES/nby )|0; // asm type annotation\n}\n\n\n// EXPORTS //\n\nmodule.exports = unaryBlockSize;\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* Resolve a loop block size for multi-dimensional array tiled loops.\n*\n* @module @stdlib/ndarray/base/unary-tiling-block-size\n*\n* @example\n* var unaryBlockSize = require( '@stdlib/ndarray/base/unary-tiling-block-size' );\n*\n* var bsize = unaryBlockSize( 'float64', 'float64' );\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 loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Assigns elements in a two-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\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* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign2d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign2d( x, y ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar ox1;\n\tvar oy1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t// Compute loop offset increments...\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedassign2d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Assigns elements in a three-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\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* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign3d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign3d( x, y ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedassign3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Assigns elements in a four-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\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* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign4d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign4d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\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 ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\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 o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\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 = blockedassign4d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Assigns elements in a five-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\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* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign5d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign5d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\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 ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\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 o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedassign5d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Assigns elements in a six-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\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* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign6d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign6d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedassign6d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Assigns elements in a seven-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\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* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign7d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign7d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedassign7d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Assigns elements in an eight-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\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* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign8d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign8d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedassign8d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Assigns elements in a nine-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {void}\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* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign9d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign9d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedassign9d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Assigns elements in a ten-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\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* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign10d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign10d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedassign10d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Assigns elements in a two-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign2d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0 ]\n*/\nfunction blockedassign2d( x, y ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar ox1;\n\tvar oy1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t// Compute loop offset increments...\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedassign2d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Assigns elements in a three-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign3d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign3d( x, y ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedassign3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Assigns elements in a four-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign4d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign4d( x, y ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\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 ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\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 o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\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 = blockedassign4d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Assigns elements in a five-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign5d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign5d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\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 ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\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 o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedassign5d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Assigns elements in a six-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign6d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign6d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedassign6d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Assigns elements in a seven-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign7d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign7d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedassign7d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Assigns elements in an eight-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign8d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign8d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedassign8d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Assigns elements in a nine-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign9d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign9d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedassign9d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Assigns elements in a ten-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign10d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign10d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedassign10d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Assigns elements in a zero-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\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* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0 ] );\n* var ybuf = new Complex64Array( 2 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign0d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 3.0\n*\n* var im = imagf( v );\n* // returns 4.0\n*/\nfunction assign0d( x, y ) {\n\ty.accessors[ 1 ]( y.data, y.offset, x.accessors[ 0 ]( x.data, x.offset ) );\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign0d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Assigns elements in a one-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\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* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign1d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign1d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dy0;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\tix += dx0;\n\t\tiy += dy0;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign1d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Assigns elements in a two-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\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* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign2d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign2d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign2d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Assigns elements in a three-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\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* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign3d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign3d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Assigns elements in a four-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\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* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign4d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign4d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\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 sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign4d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Assigns elements in a five-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\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* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign5d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign5d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\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 sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign5d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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* Assigns elements in a six-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\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* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign6d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign6d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign6d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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* Assigns elements in a seven-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\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* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign7d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign7d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign7d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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* Assigns elements in an eight-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\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* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign8d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign8d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign8d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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* Assigns elements in a nine-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\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* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign9d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign9d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign9d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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* Assigns elements in a ten-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\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* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign10d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign10d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign10d;\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 format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Converts a linear index in an array view to a linear index in an underlying data buffer.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - location of the first indexed value **based** on the stride array\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @param {integer} idx - linear index in an array view\n* @param {string} mode - specifies how to handle a linear index which exceeds array dimensions\n* @throws {RangeError} linear index must not exceed array dimensions\n* @returns {NonNegativeInteger} linear index in an underlying data buffer\n*\n* @example\n* var shape = [ 3, 3 ];\n* var strides = [ -3, 1 ];\n* var offset = 6;\n* var order = 'row-major';\n* var mode = 'throw';\n*\n* var ind = vind2bind( shape, strides, offset, order, 1, mode );\n* // returns 7\n*/\nfunction vind2bind( shape, strides, offset, order, idx, mode ) {\n\tvar ndims;\n\tvar len;\n\tvar ind;\n\tvar s;\n\tvar i;\n\n\tndims = shape.length;\n\tlen = 1;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tlen *= shape[ i ];\n\t}\n\tif ( mode === 'clamp' ) {\n\t\tif ( idx < 0 ) {\n\t\t\tidx = 0;\n\t\t} else if ( idx >= len ) {\n\t\t\tidx = len - 1;\n\t\t}\n\t} else if ( mode === 'wrap' ) {\n\t\tif ( idx < 0 ) {\n\t\t\tidx += len; // slight optimization to avoid modulo arithmetic when |idx| <= len\n\t\t\tif ( idx < 0 ) {\n\t\t\t\tidx %= len;\n\t\t\t\tif ( idx !== 0 ) {\n\t\t\t\t\tidx += len;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if ( idx >= len ) {\n\t\t\tidx -= len; // slight optimization to avoid modulo arithmetic when len < idx <= 2*len\n\t\t\tif ( idx >= len ) {\n\t\t\t\tidx %= len;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif ( mode === 'normalize' && idx < 0 ) {\n\t\t\tidx += len;\n\t\t}\n\t\tif ( idx < 0 || idx >= len ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Linear index must not exceed array dimensions. Number of array elements: `%u`. Value: `%d`.', len, idx ) );\n\t\t}\n\t}\n\t// The approach which follows is to resolve a view index to its subscripts and then plug the subscripts into the standard formula for computing the linear index in the underlying data buffer...\n\tind = offset;\n\tif ( order === 'column-major' ) {\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\ts = idx % shape[ i ];\n\t\t\tidx -= s;\n\t\t\tidx /= shape[ i ];\n\t\t\tind += s * strides[ i ];\n\t\t}\n\t\treturn ind;\n\t}\n\t// Case: row-major\n\tfor ( i = ndims-1; i >= 0; i-- ) {\n\t\ts = idx % shape[ i ];\n\t\tidx -= s;\n\t\tidx /= shape[ i ];\n\t\tind += s * strides[ i ];\n\t}\n\treturn ind;\n}\n\n\n// EXPORTS //\n\nmodule.exports = vind2bind;\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 a linear index in an array view to a linear index in an underlying data buffer.\n*\n* @module @stdlib/ndarray/base/vind2bind\n*\n* @example\n* var vind2bind = require( '@stdlib/ndarray/base/vind2bind' );\n*\n* var shape = [ 3, 3 ];\n* var strides = [ -3, 1 ];\n* var offset = 6;\n* var order = 'row-major';\n* var mode = 'throw';\n*\n* var ind = vind2bind( shape, strides, offset, order, 1, mode );\n* // returns 7\n*/\n\n// MODULES //\n\nvar vind2bind = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = vind2bind;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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( './../../../base/numel' );\nvar vind2bind = require( './../../../base/vind2bind' );\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Assigns elements in an n-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\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* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assignnd( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assignnd( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar ordx;\n\tvar ordy;\n\tvar len;\n\tvar get;\n\tvar set;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray data buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = assignnd;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Assigns elements in a zero-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n* var ybuf = new Float64Array( 1 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign0d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0 ]\n*/\nfunction assign0d( x, y ) {\n\ty.data[ y.offset ] = x.data[ x.offset ];\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign0d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Assigns elements in a one-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign1d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 4.0, 6.0, 8.0 ]\n*/\nfunction assign1d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dy0;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tybuf[ iy ] = xbuf[ ix ];\n\t\tix += dx0;\n\t\tiy += dy0;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign1d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Assigns elements in a two-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign2d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0 ]\n*/\nfunction assign2d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign2d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Assigns elements in a three-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign3d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign3d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Assigns elements in a four-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign4d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign4d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\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 sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign4d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Assigns elements in a five-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign5d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign5d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\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 sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign5d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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* Assigns elements in a six-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign6d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign6d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign6d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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* Assigns elements in a seven-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign7d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign7d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign7d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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* Assigns elements in an eight-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign8d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign8d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign8d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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* Assigns elements in a nine-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign9d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign9d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign9d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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* Assigns elements in a ten-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign10d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign10d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign10d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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( './../../../base/numel' );\nvar vind2bind = require( './../../../base/vind2bind' );\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Assigns elements in an n-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assignnd( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0 ]\n*/\nfunction assignnd( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar ordx;\n\tvar ordy;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray data buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tybuf[ iy ] = xbuf[ ix ];\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = assignnd;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 isComplexDataType = require( './../../../base/assert/is-complex-floating-point-data-type' );\nvar isRealDataType = require( './../../../base/assert/is-real-data-type' );\nvar iterationOrder = require( './../../../base/iteration-order' );\nvar castReturn = require( '@stdlib/complex/base/cast-return' );\nvar complexCtors = require( '@stdlib/complex/ctors' );\nvar minmaxViewBufferIndex = require( './../../../base/minmax-view-buffer-index' );\nvar ndarray2object = require( './../../../base/ndarraylike2object' );\nvar blockedaccessorassign2d = require( './2d_blocked_accessors.js' );\nvar blockedaccessorassign3d = require( './3d_blocked_accessors.js' );\nvar blockedaccessorassign4d = require( './4d_blocked_accessors.js' );\nvar blockedaccessorassign5d = require( './5d_blocked_accessors.js' );\nvar blockedaccessorassign6d = require( './6d_blocked_accessors.js' );\nvar blockedaccessorassign7d = require( './7d_blocked_accessors.js' );\nvar blockedaccessorassign8d = require( './8d_blocked_accessors.js' );\nvar blockedaccessorassign9d = require( './9d_blocked_accessors.js' );\nvar blockedaccessorassign10d = require( './10d_blocked_accessors.js' );\nvar blockedassign2d = require( './2d_blocked.js' );\nvar blockedassign3d = require( './3d_blocked.js' );\nvar blockedassign4d = require( './4d_blocked.js' );\nvar blockedassign5d = require( './5d_blocked.js' );\nvar blockedassign6d = require( './6d_blocked.js' );\nvar blockedassign7d = require( './7d_blocked.js' );\nvar blockedassign8d = require( './8d_blocked.js' );\nvar blockedassign9d = require( './9d_blocked.js' );\nvar blockedassign10d = require( './10d_blocked.js' );\nvar accessorassign0d = require( './0d_accessors.js' );\nvar accessorassign1d = require( './1d_accessors.js' );\nvar accessorassign2d = require( './2d_accessors.js' );\nvar accessorassign3d = require( './3d_accessors.js' );\nvar accessorassign4d = require( './4d_accessors.js' );\nvar accessorassign5d = require( './5d_accessors.js' );\nvar accessorassign6d = require( './6d_accessors.js' );\nvar accessorassign7d = require( './7d_accessors.js' );\nvar accessorassign8d = require( './8d_accessors.js' );\nvar accessorassign9d = require( './9d_accessors.js' );\nvar accessorassign10d = require( './10d_accessors.js' );\nvar accessorassignnd = require( './nd_accessors.js' );\nvar assign0d = require( './0d.js' );\nvar assign1d = require( './1d.js' );\nvar assign2d = require( './2d.js' );\nvar assign3d = require( './3d.js' );\nvar assign4d = require( './4d.js' );\nvar assign5d = require( './5d.js' );\nvar assign6d = require( './6d.js' );\nvar assign7d = require( './7d.js' );\nvar assign8d = require( './8d.js' );\nvar assign9d = require( './9d.js' );\nvar assign10d = require( './10d.js' );\nvar assignnd = require( './nd.js' );\n\n\n// VARIABLES //\n\nvar ASSIGN = [\n\tassign0d,\n\tassign1d,\n\tassign2d,\n\tassign3d,\n\tassign4d,\n\tassign5d,\n\tassign6d,\n\tassign7d,\n\tassign8d,\n\tassign9d,\n\tassign10d\n];\nvar ACCESSOR_ASSIGN = [\n\taccessorassign0d,\n\taccessorassign1d,\n\taccessorassign2d,\n\taccessorassign3d,\n\taccessorassign4d,\n\taccessorassign5d,\n\taccessorassign6d,\n\taccessorassign7d,\n\taccessorassign8d,\n\taccessorassign9d,\n\taccessorassign10d\n];\nvar BLOCKED_ASSIGN = [\n\tblockedassign2d, // 0\n\tblockedassign3d,\n\tblockedassign4d,\n\tblockedassign5d,\n\tblockedassign6d,\n\tblockedassign7d,\n\tblockedassign8d,\n\tblockedassign9d,\n\tblockedassign10d // 8\n];\nvar BLOCKED_ACCESSOR_ASSIGN = [\n\tblockedaccessorassign2d, // 0\n\tblockedaccessorassign3d,\n\tblockedaccessorassign4d,\n\tblockedaccessorassign5d,\n\tblockedaccessorassign6d,\n\tblockedaccessorassign7d,\n\tblockedaccessorassign8d,\n\tblockedaccessorassign9d,\n\tblockedaccessorassign10d // 8\n];\nvar MAX_DIMS = ASSIGN.length - 1;\n\n\n// MAIN //\n\n/**\n* Assigns elements in an input ndarray to elements in an output ndarray.\n*\n* ## Notes\n*\n* - Each provided ndarray should be an `object` with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @throws {Error} arrays must have the same number of dimensions\n* @throws {Error} arrays must have the same shape\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign( [ x, y ] );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign( arrays ) {\n\tvar ndims;\n\tvar xmmv;\n\tvar ymmv;\n\tvar shx;\n\tvar shy;\n\tvar iox;\n\tvar ioy;\n\tvar len;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ns;\n\tvar x;\n\tvar y;\n\tvar d;\n\tvar i;\n\n\t// Unpack the ndarrays and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\ty = ndarray2object( arrays[ 1 ] );\n\n\t// Determine whether we are casting a real data type to a complex data type and we need to use a specialized accessor (note: we don't support the other way, complex-to-real, as this is not an allowed (mostly) safe cast)...\n\tif ( isRealDataType( x.dtype ) && isComplexDataType( y.dtype ) ) {\n\t\tx.accessorProtocol = true;\n\t\tx.accessors[ 0 ] = castReturn( x.accessors[ 0 ], 2, complexCtors( y.dtype ) ); // eslint-disable-line max-len\n\t}\n\t// Verify that the input and output arrays have the same number of dimensions...\n\tshx = x.shape;\n\tshy = y.shape;\n\tndims = shx.length;\n\tif ( ndims !== shy.length ) {\n\t\tthrow new Error( 'invalid arguments. Arrays must have the same number of dimensions (i.e., same rank). ndims(x) == '+ndims+'. ndims(y) == '+shy.length+'.' );\n\t}\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_ASSIGN[ ndims ]( x, y );\n\t\t}\n\t\treturn ASSIGN[ ndims ]( x, y );\n\t}\n\t// Verify that the input and output arrays have the same dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = shx[ i ];\n\t\tif ( d !== shy[ i ] ) {\n\t\t\tthrow new Error( 'invalid arguments. Arrays must have the same shape.' );\n\t\t}\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= d;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( d === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided empty ndarrays...\n\tif ( len === 0 ) {\n\t\treturn;\n\t}\n\t// Determine whether the ndarrays are one-dimensional and thus readily translate to one-dimensional strided arrays...\n\tif ( ndims === 1 ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_ASSIGN[ ndims ]( x, y );\n\t\t}\n\t\treturn ASSIGN[ ndims ]( x, y );\n\t}\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Determine whether the ndarray has only **one** non-singleton dimension (e.g., ndims=4, shape=[10,1,1,1]) so that we can treat the ndarrays as being equivalent to one-dimensional strided arrays...\n\tif ( ns === ndims-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( shx[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tx.shape = [ shx[i] ];\n\t\ty.shape = x.shape;\n\t\tx.strides = [ sx[i] ];\n\t\ty.strides = [ sy[i] ];\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_ASSIGN[ 1 ]( x, y );\n\t\t}\n\t\treturn ASSIGN[ 1 ]( x, y );\n\t}\n\tiox = iterationOrder( sx ); // +/-1\n\tioy = iterationOrder( sy ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tif ( iox !== 0 && ioy !== 0 && x.order === y.order ) {\n\t\t// Determine the minimum and maximum linear indices which are accessible by the array views:\n\t\txmmv = minmaxViewBufferIndex( shx, sx, x.offset );\n\t\tymmv = minmaxViewBufferIndex( shy, sy, y.offset );\n\n\t\t// Determine whether we can ignore shape (and strides) and treat the ndarrays as linear one-dimensional strided arrays...\n\t\tif ( len === ( xmmv[1]-xmmv[0]+1 ) && len === ( ymmv[1]-ymmv[0]+1 ) ) {\n\t\t\t// Note: the above is equivalent to @stdlib/ndarray/base/assert/is-contiguous, but in-lined so we can retain computed values...\n\t\t\tif ( iox === 1 ) {\n\t\t\t\tox = xmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\tox = xmmv[ 1 ];\n\t\t\t}\n\t\t\tif ( ioy === 1 ) {\n\t\t\t\toy = ymmv[ 0 ];\n\t\t\t} else {\n\t\t\t\toy = ymmv[ 1 ];\n\t\t\t}\n\t\t\tx.shape = [ len ];\n\t\t\ty.shape = x.shape;\n\t\t\tx.strides = [ iox ];\n\t\t\ty.strides = [ ioy ];\n\t\t\tx.offset = ox;\n\t\t\ty.offset = oy;\n\t\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_ASSIGN[ 1 ]( x, y );\n\t\t\t}\n\t\t\treturn ASSIGN[ 1 ]( x, y );\n\t\t}\n\t\t// At least one ndarray is non-contiguous, so we cannot directly use one-dimensional array functionality...\n\n\t\t// Determine whether we can use simple nested loops...\n\t\tif ( ndims <= MAX_DIMS ) {\n\t\t\t// So long as iteration for each respective array always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_ASSIGN[ ndims ]( x, y );\n\t\t\t}\n\t\t\treturn ASSIGN[ ndims ]( x, y );\n\t\t}\n\t\t// Fall-through to blocked iteration...\n\t}\n\t// At this point, we're either dealing with non-contiguous n-dimensional arrays, high dimensional n-dimensional arrays, and/or arrays having differing memory layouts, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_ASSIGN[ ndims-2 ]( x, y );\n\t\t}\n\t\treturn BLOCKED_ASSIGN[ ndims-2 ]( x, y );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\treturn accessorassignnd( x, y );\n\t}\n\tassignnd( x, y );\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Assign elements in an input ndarray to elements in an output ndarray.\n*\n* @module @stdlib/ndarray/base/assign\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var assign = require( '@stdlib/ndarray/base/assign' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign( [ x, y ] );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Simultaneously sorts two arrays based on the sort order of the first array using insertion sort.\n*\n* ## Notes\n*\n* - The first array is sorted in increasing order according to absolute value.\n* - The algorithm has space complexity `O(1)` and worst case time complexity `O(N^2)`.\n* - The algorithm is efficient for small arrays (typically `N <= 20``) and is particularly efficient for sorting arrays which are already substantially sorted.\n* - The algorithm is **stable**, meaning that the algorithm does **not** change the order of array elements which are equal or equivalent.\n* - The input arrays are sorted in-place (i.e., the input arrays are mutated).\n*\n* @private\n* @param {Array} x - first array\n* @param {Array} y - second array\n* @returns {void}\n*\n* @example\n* var x = [ -4, -2, 3, 1 ];\n* var y = [ 0, 1, 2, 3 ];\n*\n* sort2ins( x, y );\n*\n* console.log( x );\n* // => [ 1, -2, 3, -4 ]\n*\n* console.log( y );\n* // => [ 3, 1, 2, 0 ]\n*/\nfunction sort2ins( x, y ) {\n\tvar avx;\n\tvar aux;\n\tvar ix;\n\tvar iy;\n\tvar jx;\n\tvar jy;\n\tvar vx;\n\tvar vy;\n\tvar ux;\n\tvar i;\n\n\tix = 1;\n\tiy = 1;\n\n\t// Sort in increasing order...\n\tfor ( i = 1; i < x.length; i++ ) {\n\t\tvx = x[ ix ];\n\t\tavx = ( vx < 0 ) ? -vx : vx;\n\n\t\tvy = y[ iy ];\n\n\t\tjx = ix - 1;\n\t\tjy = iy - 1;\n\n\t\t// Shift all larger values to the left of the current element to the right...\n\t\twhile ( jx >= 0 ) {\n\t\t\tux = x[ jx ];\n\t\t\taux = ( ux < 0 ) ? -ux : ux;\n\t\t\tif ( aux <= avx ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tx[ jx+1 ] = ux;\n\t\t\ty[ jy+1 ] = y[ jy ];\n\t\t\tjx -= 1;\n\t\t\tjy -= 1;\n\t\t}\n\t\tx[ jx+1 ] = vx;\n\t\ty[ jy+1 ] = vy;\n\t\tix += 1;\n\t\tiy += 1;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = sort2ins;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 zeroTo = require( '@stdlib/array/base/zero-to' );\nvar copy = require( '@stdlib/array/base/copy-indexed' );\nvar take = require( '@stdlib/array/base/take-indexed' );\nvar filled = require( '@stdlib/array/base/filled' );\nvar strides2order = require( './../../../base/strides2order' );\nvar sort2ins = require( './sort2ins.js' );\n\n\n// VARIABLES //\n\n// Number of arrays:\nvar N = 3;\n\n\n// MAIN //\n\n/**\n* Reorders ndarray dimensions and associated strides for loop interchange.\n*\n* ## Notes\n*\n* - The returned object has the following properties:\n*\n* - **sh**: dimensions sorted in loop order.\n* - **sx**: first input ndarray strides sorted in loop order.\n* - **sy**: second input ndarray strides sorted in loop order.\n* - **sz**: output ndarray strides sorted in loop order.\n*\n* @param {NonNegativeIntegerArray} sh - array dimensions\n* @param {IntegerArray} sx - first input array stride lengths\n* @param {IntegerArray} sy - second input array stride lengths\n* @param {IntegerArray} sz - output array stride lengths\n* @returns {Object} loop interchange data\n*\n* @example\n* var sh = [ 2, 3, 4 ];\n*\n* var sx = [ 12, 4, 1 ]; // row-major\n* var sy = [ 24, 8, 1 ]; // row-major\n* var sz = [ 1, -2, 6 ]; // column-major\n*\n* var o = loopOrder( sh, sx, sy, sz );\n* // returns {...}\n*\n* var ssh = o.sh;\n* // returns [ 4, 3, 2 ]\n*\n* var ssx = o.sx;\n* // returns [ 1, 4, 12 ]\n*\n* var ssy = o.sy;\n* // returns [ 1, 8, 24 ]\n*\n* var ssz = o.sz;\n* // returns [ 6, -2, 1 ]\n*/\nfunction loopOrder( sh, sx, sy, sz ) {\n\tvar idx;\n\tvar tmp;\n\tvar max;\n\tvar len;\n\tvar arr;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar i;\n\tvar j;\n\n\t// Initialize a loop interchange index array for generating a loop order permutation:\n\tidx = zeroTo( sh.length );\n\n\t// Determine the order (layout) of each array:\n\tox = strides2order( sx );\n\toy = strides2order( sy );\n\toz = strides2order( sz );\n\n\t// Determine which array should be used to generate the loop order:\n\ttmp = filled( [], 4 );\n\ttmp[ ox ].push( sx );\n\ttmp[ oy ].push( sy );\n\ttmp[ oz ].push( sz );\n\tmax = tmp[ 0 ].length;\n\tif ( max === N ) {\n\t\t// If all arrays are \"disorganized\", then just use the first array, as, generally, each array is likely to be as un-ideal as every other:\n\t\tarr = sx;\n\t} else if ( max === N-1 ) {\n\t\t// If all but one array is \"disorganized\", find the \"organized\" array...\n\t\tfor ( i = 1; i < 4; i++ ) {\n\t\t\tif ( tmp[ i ].length ) {\n\t\t\t\tarr = tmp[ i ][ 0 ];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// Find the layout which is most common...\n\t\tj = 0;\n\t\tfor ( i = 1; i < 4; i++ ) {\n\t\t\tlen = tmp[ i ].length;\n\t\t\tif ( len >= max ) {\n\t\t\t\tmax = len;\n\t\t\t\tj = i;\n\t\t\t}\n\t\t}\n\t\t// Use the strides of the first array having the most common layout:\n\t\tarr = tmp[ j ][ 0 ];\n\t}\n\t// Sort array strides in increasing order (of magnitude):\n\tarr = copy( arr );\n\tsort2ins( arr, idx );\n\n\t// Permute the shape and array strides based on the sorted strides:\n\tsh = take( sh, idx );\n\tsx = ( sx === arr ) ? arr : take( sx, idx );\n\tsy = ( sy === arr ) ? arr : take( sy, idx );\n\tsz = ( sz === arr ) ? arr : take( sz, idx );\n\n\treturn {\n\t\t'sh': sh,\n\t\t'sx': sx,\n\t\t'sy': sy,\n\t\t'sz': sz\n\t};\n}\n\n\n// EXPORTS //\n\nmodule.exports = loopOrder;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Reorder ndarray dimensions and associated strides for loop interchange.\n*\n* @module @stdlib/ndarray/base/binary-loop-interchange-order\n*\n* @example\n* var binaryLoopOrder = require( '@stdlib/ndarray/base/binary-loop-interchange-order' );\n*\n* var sh = [ 2, 3, 4 ];\n*\n* var sx = [ 12, 4, 1 ]; // row-major\n* var sy = [ 24, 8, 1 ]; // row-major\n* var sz = [ 1, -2, 6 ]; // column-major\n*\n* var o = loopOrder( sh, sx, sy, sz );\n* // returns {...}\n*\n* var ssh = o.sh;\n* // returns [ 4, 3, 2 ]\n*\n* var ssx = o.sx;\n* // returns [ 1, 4, 12 ]\n*\n* var ssy = o.sy;\n* // returns [ 1, 8, 24 ]\n*\n* var ssz = o.sz;\n* // returns [ 6, -2, 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\nvar defaults = {\n\t// Define a default block size (in bytes):\n\t'BLOCK_SIZE_IN_BYTES': 64|0, // 64b is a common cache line size. How applicable the common cache line size is here is debatable, given that, depending on the associated stride(s), the innermost loop may not iterate over adjacent elements. The primary goal is to have a block size in which all data within a block can always fit in (L1) cache, regardless of cache size (i.e., cache-oblivious). For reference, a common L1 cache size is 32kB per core. For best performance, block sizes should be tuned based on system hardware; however, such tuning is not readily available to us here. Without obvious better alternatives, 64b has some theoretical (and practical) underpinning, and it should be good enough for most inputs, especially for ndarrays with near contiguity.\n\n\t// Define a default block size (in elements):\n\t'BLOCK_SIZE_IN_ELEMENTS': 8|0 // 64 bytes / 8 bytes per element (i.e., default element size is same as a double)\n};\n\n\n// EXPORTS //\n\nmodule.exports = defaults;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 bytesPerElement = require( './../../../base/bytes-per-element' );\nvar defaults = require( './defaults.js' );\n\n\n// MAIN //\n\n/**\n* Returns a loop block size for multi-dimensional array tiled loops.\n*\n* @param {string} dtypeX - first input array data type\n* @param {string} dtypeY - second input array data type\n* @param {string} dtypeZ - output array data type\n* @returns {integer} block size (in units of elements)\n*\n* @example\n* var bsize = binaryBlockSize( 'float64', 'float64', 'float64' );\n* // returns \n*/\nfunction binaryBlockSize( dtypeX, dtypeY, dtypeZ ) {\n\tvar nbx;\n\tvar nby;\n\tvar nbz;\n\n\tnbx = bytesPerElement( dtypeX );\n\tnby = bytesPerElement( dtypeY );\n\tnbz = bytesPerElement( dtypeZ );\n\tif ( nbx === null || nby === null || nbz === null ) { // e.g., \"generic\" arrays\n\t\treturn defaults.BLOCK_SIZE_IN_ELEMENTS;\n\t}\n\tif ( nbx > nby && nbx > nbz ) {\n\t\treturn ( defaults.BLOCK_SIZE_IN_BYTES/nbx )|0; // asm type annotation\n\t}\n\tif ( nby > nbz ) {\n\t\treturn ( defaults.BLOCK_SIZE_IN_BYTES/nby )|0; // asm type annotation\n\t}\n\treturn ( defaults.BLOCK_SIZE_IN_BYTES/nbz )|0; // asm type annotation\n}\n\n\n// EXPORTS //\n\nmodule.exports = binaryBlockSize;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Resolve a loop block size for multi-dimensional array tiled loops.\n*\n* @module @stdlib/ndarray/base/binary-tiling-block-size\n*\n* @example\n* var binaryBlockSize = require( '@stdlib/ndarray/base/binary-tiling-block-size' );\n*\n* var bsize = binaryBlockSize( 'float64', 'float64', 'float64' );\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 format = require( '@stdlib/string/format' );\nvar trunc = require( '@stdlib/math/base/special/trunc' );\nvar abs = require( '@stdlib/math/base/special/abs' );\n\n\n// MAIN //\n\n/**\n* Converts a linear index in an underlying data buffer to a linear index in an array view.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - location of the first indexed value **based** on the stride array\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @param {integer} idx - linear index in an underlying data buffer\n* @param {string} mode - specifies how to handle a linear index which exceeds array dimensions\n* @throws {RangeError} linear index must not exceed array dimensions\n* @returns {NonNegativeInteger} linear index in an array view\n*\n* @example\n* var shape = [ 3, 3 ];\n* var strides = [ -3, 1 ];\n* var offset = 6;\n* var order = 'row-major';\n* var mode = 'throw';\n*\n* var ind = bind2vind( shape, strides, offset, order, 7, mode );\n* // returns 1\n*/\nfunction bind2vind( shape, strides, offset, order, idx, mode ) {\n\tvar ndims;\n\tvar len;\n\tvar ind;\n\tvar k;\n\tvar s;\n\tvar i;\n\n\tndims = shape.length;\n\tlen = 1;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tlen *= shape[ i ];\n\t}\n\tif ( mode === 'clamp' ) {\n\t\tif ( idx < 0 ) {\n\t\t\tidx = 0;\n\t\t} else if ( idx >= len ) {\n\t\t\tidx = len - 1;\n\t\t}\n\t} else if ( mode === 'wrap' ) {\n\t\tif ( idx < 0 ) {\n\t\t\tidx += len; // slight optimization to avoid modulo arithmetic when |idx| <= len\n\t\t\tif ( idx < 0 ) {\n\t\t\t\tidx %= len;\n\t\t\t\tif ( idx !== 0 ) {\n\t\t\t\t\tidx += len;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if ( idx >= len ) {\n\t\t\tidx -= len; // slight optimization to avoid modulo arithmetic when len < idx <= 2*len\n\t\t\tif ( idx >= len ) {\n\t\t\t\tidx %= len;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif ( mode === 'normalize' && idx < 0 ) {\n\t\t\tidx += len;\n\t\t}\n\t\tif ( idx < 0 || idx >= len ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Linear index must not exceed array dimensions. Number of array elements: `%u`. Value: `%d`.', len, idx ) );\n\t\t}\n\t}\n\t// The approach which follows is to resolve a buffer index to its subscripts and then plug the subscripts into the standard formula for computing the linear index in the array view (i.e., where all strides are positive and offset is 0)...\n\tind = 0;\n\tif ( order === 'column-major' ) {\n\t\tfor ( i = ndims-1; i >= 0; i-- ) {\n\t\t\ts = strides[ i ];\n\t\t\tif ( s < 0 ) {\n\t\t\t\tk = trunc( idx/s );\n\t\t\t\tidx -= k * s;\n\t\t\t\tk += shape[ i ] - 1;\n\t\t\t} else {\n\t\t\t\tk = trunc( idx/s );\n\t\t\t\tidx -= k * s;\n\t\t\t}\n\t\t\tind += k * abs( s );\n\t\t}\n\t\treturn ind;\n\t}\n\t// Case: row-major\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\ts = strides[ i ];\n\t\tif ( s < 0 ) {\n\t\t\tk = trunc( idx/s );\n\t\t\tidx -= k * s;\n\t\t\tk += shape[ i ] - 1;\n\t\t} else {\n\t\t\tk = trunc( idx/s );\n\t\t\tidx -= k * s;\n\t\t}\n\t\tind += k * abs( s );\n\t}\n\treturn ind;\n}\n\n\n// EXPORTS //\n\nmodule.exports = bind2vind;\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 a linear index in an underlying data buffer to a linear index in an array view.\n*\n* @module @stdlib/ndarray/base/bind2vind\n*\n* @example\n* var bind2vind = require( '@stdlib/ndarray/base/bind2vind' );\n*\n* var shape = [ 3, 3 ];\n* var strides = [ -3, 1 ];\n* var offset = 6;\n* var order = 'row-major';\n* var mode = 'throw';\n*\n* var ind = bind2vind( shape, strides, offset, order, 7, mode );\n* // returns 1\n*/\n\n// MODULES //\n\nvar bind2vind = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = bind2vind;\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 copy = require( '@stdlib/array/base/copy-indexed' );\nvar ndarray = require( './../../../base/ctor' );\nvar getShape = require( './../../../base/shape' );\nvar getStrides = require('./../../../base/strides' );\nvar getOffset = require( './../../../base/offset' );\nvar getOrder = require( './../../../base/order' );\nvar getDType = require( './../../../base/dtype' );\nvar getData = require( './../../../base/data-buffer' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Broadcasts an ndarray to a specified shape.\n*\n* ## Notes\n*\n* - The returned array is a view on the input array data buffer. The view is typically **not** contiguous. As more than one element of a returned view may refer to the same memory location, writing to the view may affect multiple elements. If you need to write to the returned array, copy the array before performing operations which may mutate elements.\n*\n* @param {ndarray} arr - input array\n* @param {NonNegativeIntegerArray} shape - desired 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 shape\n* @throws {Error} input array and desired shape must be broadcast compatible\n* @returns {ndarray} broadcasted array\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var shx = x.shape;\n* // returns [ 2, 2 ]\n*\n* var y = broadcastArray( x, [ 3, 2, 2 ] );\n* // returns \n*\n* var shy = y.shape;\n* // returns [ 3, 2, 2 ]\n*\n* var v = y.get( 0, 0, 0 );\n* // returns 1\n*\n* v = y.get( 0, 0, 1 );\n* // returns 2\n*\n* v = y.get( 1, 0, 0 );\n* // returns 1\n*\n* v = y.get( 1, 1, 0 );\n* // returns 3\n*\n* v = y.get( 2, 0, 0 );\n* // returns 1\n*\n* v = y.get( 2, 1, 1 );\n* // returns 4\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var y = broadcastArray( x, [ 3, 2 ] );\n* // throws \n*/\nfunction broadcastArray( arr, shape ) {\n\tvar strides;\n\tvar dim;\n\tvar sh;\n\tvar st;\n\tvar N;\n\tvar M;\n\tvar d;\n\tvar i;\n\tvar j;\n\n\tN = shape.length;\n\tsh = getShape( arr, false );\n\tM = sh.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// Initialize a strides array...\n\tstrides = [];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tstrides.push( 0 );\n\t}\n\t// Determine the output array strides...\n\tst = getStrides( arr, false );\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 = sh[ j ];\n\t\tdim = shape[ 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( sh ).join( ', ' ), copy( shape ).join( ', ' ), i ) );\n\t\t}\n\t\tif ( d === dim ) {\n\t\t\tstrides[ i ] = st[ j ];\n\t\t} else if ( d === 1 ) {\n\t\t\t// In order to broadcast dimensions, we set the stride for that dimension to zero...\n\t\t\tstrides[ 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( sh ).join( ', ' ), copy( shape ).join( ', ' ), i ) );\n\t\t}\n\t}\n\treturn ndarray( getDType( arr ), getData( arr ), copy( shape ), strides, getOffset( arr ), getOrder( arr ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nmodule.exports = broadcastArray;\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* Broadcast an ndarray to a specified shape.\n*\n* @module @stdlib/ndarray/base/broadcast-array\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n* var broadcastArray = require( '@stdlib/ndarray/base/broadcast-array' );\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var shx = x.shape;\n* // returns [ 2, 2 ]\n*\n* var y = broadcastArray( x, [ 3, 2, 2 ] );\n* // returns \n*\n* var shy = y.shape;\n* // returns [ 3, 2, 2 ]\n*\n* var v = y.get( 0, 0, 0 );\n* // returns 1\n*\n* v = y.get( 0, 0, 1 );\n* // returns 2\n*\n* v = y.get( 1, 0, 0 );\n* // returns 1\n*\n* v = y.get( 1, 1, 0 );\n* // returns 3\n*\n* v = y.get( 2, 0, 0 );\n* // returns 1\n*\n* v = y.get( 2, 1, 1 );\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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( '@stdlib/array/base/assert/is-accessor-array' );\nvar accessorSetter = require( '@stdlib/array/base/accessor-setter' );\nvar setter = require( '@stdlib/array/base/setter' );\nvar zeros = require( '@stdlib/array/base/zeros' );\nvar buffer = require( './../../../base/buffer' );\nvar ndarray = require( './../../../base/ctor' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Broadcasts a scalar value to an ndarray having a specified shape.\n*\n* @param {*} value - scalar value\n* @param {string} dtype - output array data type\n* @param {NonNegativeIntegerArray} shape - output array shape\n* @param {string} order - memory layout (either row-major or column-major)\n* @throws {TypeError} second argument must be a recognized data type\n* @returns {ndarray} ndarray\n*\n* @example\n* var x = broadcastScalar( 1.0, 'float64', [ 2, 2 ], 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 2, 2 ]\n*\n* var dt = x.dtype;\n* // returns 'float64'\n*\n* var v = x.get( 0, 1 );\n* // returns 1.0\n*/\nfunction broadcastScalar( value, dtype, shape, order ) {\n\tvar buf;\n\tvar set;\n\n\tbuf = buffer( dtype, 1 );\n\tif ( buf === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a recognized data type. Value: `%s`.', dtype ) );\n\t}\n\tif ( /^complex/.test( dtype ) && typeof value === 'number' ) {\n\t\tvalue = [ value, 0.0 ]; // note: we're assuming that the ComplexXXArray setter accepts an array of interleaved real and imaginary components\n\t}\n\tif ( isAccessorArray( buf ) ) {\n\t\tset = accessorSetter( dtype );\n\t} else {\n\t\tset = setter( dtype );\n\t}\n\tset( buf, 0, value );\n\treturn new ndarray( dtype, buf, shape, zeros( shape.length ), 0, order );\n}\n\n\n// EXPORTS //\n\nmodule.exports = broadcastScalar;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 a scalar value to an ndarray having a specified shape.\n*\n* @module @stdlib/ndarray/base/broadcast-scalar\n*\n* @example\n* var broadcastScalar = require( '@stdlib/ndarray/base/broadcast-scalar' );\n*\n* var x = broadcastScalar( 1.0, 'float64', [ 2, 2 ], 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 2, 2 ]\n*\n* var dt = x.dtype;\n* // returns 'float64'\n*\n* var v = x.get( 0, 1 );\n* // returns 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) 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* Broadcasts array shapes to a single shape.\n*\n* ## Notes\n*\n* - Two respective dimensions in two shape arrays are compatible if\n*\n* 1. the dimensions are equal.\n* 2. one dimension is `1`.\n*\n* - The function returns `null` if provided incompatible shapes (i.e., shapes which cannot be broadcast with one another).\n*\n* @param {Array} shapes - array of shape arrays\n* @returns {(NonNegativeIntegerArray|null)} broadcast shape (or `null`)\n*\n* @example\n* var shapes = [\n* [ 8, 1, 6, 1 ],\n* [ 7, 1, 5 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 8, 7, 6, 5 ]\n*\n* @example\n* var shapes = [\n* [ 5, 4 ],\n* [ 1 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 5, 4 ]\n*\n* @example\n* var shapes = [\n* [ 5, 4 ],\n* [ 4 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 5, 4 ]\n*\n* @example\n* var shapes = [\n* [ 15, 3, 5 ],\n* [ 15, 1, 5 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 15, 3, 5 ]\n*\n* @example\n* var shapes = [\n* [ 15, 3, 5 ],\n* [ 3, 5 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 15, 3, 5 ]\n*\n* @example\n* var shapes = [\n* [ 15, 3, 5 ],\n* [ 3, 1 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 15, 3, 5 ]\n*\n* @example\n* var shapes = [\n* [ 8, 1, 1, 6, 1 ],\n* [ 1, 7, 1, 5 ],\n* [ 8, 4, 1, 6, 5 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 8, 4, 7, 6, 5 ]\n*\n* @example\n* var shapes = [\n* [ 8, 1, 1, 6, 1 ],\n* [ 0 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 8, 1, 1, 6, 0 ]\n*\n* @example\n* var shapes = [\n* [ 8, 1, 1, 6, 1 ],\n* [ 8, 0, 1, 6, 1 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 8, 0, 1, 6, 1 ]\n*\n* @example\n* var shapes = [\n* [ 8, 8, 1, 6, 1 ],\n* [ 8, 0, 1, 6, 1 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns null\n*\n* @example\n* var shapes = [\n* [ 8, 0, 1, 6, 1 ],\n* [ 8, 8, 1, 6, 1 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns null\n*\n* @example\n* var shapes = [\n* []\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns []\n*\n* @example\n* var shapes = [\n* [],\n* []\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns []\n*\n* @example\n* var shapes = [];\n*\n* var out = broadcastShapes( shapes );\n* // returns []\n*\n* @example\n* var shapes = [\n* [ 3, 2, 1 ],\n* []\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 3, 2, 1 ]\n*\n* @example\n* var shapes = [\n* [],\n* [ 3, 2, 1 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 3, 2, 1 ]\n*/\nfunction broadcastShapes( shapes ) {\n\tvar ndims;\n\tvar out;\n\tvar dim;\n\tvar sh;\n\tvar n1;\n\tvar n2;\n\tvar d;\n\tvar M;\n\tvar N;\n\tvar i;\n\tvar j;\n\n\tM = shapes.length;\n\tout = [];\n\tif ( M === 0 ) {\n\t\treturn out;\n\t}\n\tsh = shapes[ 0 ];\n\tN = sh.length;\n\n\t// If provided a single input shape array, then the broadcast shape is input shape...\n\tif ( M === 1 ) {\n\t\t// Need to manually copy to output shape, as shapes could be array-like objects...\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tout.push( sh[ i ] );\n\t\t}\n\t\treturn out;\n\t}\n\t// Determine the maximum dimensionality...\n\tndims = [ N ];\n\tfor ( i = 1; i < M; i++ ) {\n\t\tndims.push( shapes[ i ].length );\n\t\tif ( ndims[ i ] > N ) {\n\t\t\tN = ndims[ i ];\n\t\t}\n\t}\n\t// Initialize the output array...\n\tfor ( i = 0; i < N; i++ ) {\n\t\tout.push( 0 );\n\t}\n\t// Compute the broadcast shape...\n\ti = N - 1;\n\twhile ( i >= 0 ) {\n\t\tn1 = ndims[ 0 ] - N + i;\n\t\tif ( n1 >= 0 ) {\n\t\t\tdim = sh[ n1 ];\n\t\t} else {\n\t\t\tdim = 1;\n\t\t}\n\t\tfor ( j = 1; j < M; j++ ) {\n\t\t\tn2 = ndims[ j ] - N + i;\n\t\t\tif ( n2 >= 0 ) {\n\t\t\t\td = shapes[ j ][ n2 ];\n\t\t\t} else {\n\t\t\t\td = 1;\n\t\t\t}\n\t\t\tif ( dim === 1 ) {\n\t\t\t\tdim = d;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif ( d === 1 || dim === d ) {\n\t\t\t\t// When either `d` is `1` or `d` equals the current output shape dimension, the current output shape dimension remains the same...\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\t// The current shape cannot be broadcast against one of the other shapes...\n\t\t\treturn null;\n\t\t}\n\t\tout[ i ] = dim;\n\t\ti -= 1;\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = broadcastShapes;\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* Broadcast array shapes to a single shape.\n*\n* @module @stdlib/ndarray/base/broadcast-shapes\n*\n* @example\n* var broadcastShapes = require( '@stdlib/ndarray/base/broadcast-shapes' );\n*\n* var shapes = [\n* [ 8, 1, 6, 1 ],\n* [ 7, 1, 5 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 8, 7, 6, 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) 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 str2enum = require( './../../../base/dtype-str2enum' );\nvar dtype = require( './../../../base/buffer-dtype' );\n\n\n// MAIN //\n\n/**\n* Returns the data type enumeration constant for a provided ndarray data buffer.\n*\n* @param {Collection} arr - strided array\n* @returns {(integer|null)} data type enumeration constant or null\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var x = new Float64Array( 10 );\n*\n* var c = dtypeEnum( x );\n* // returns \n*/\nfunction dtypeEnum( arr ) {\n\tvar dt = dtype( arr );\n\tif ( dt ) {\n\t\treturn str2enum( dt );\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = dtypeEnum;\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* Return the data type enumeration constant for an ndarray data buffer.\n*\n* @module @stdlib/ndarray/base/buffer-dtype-enum\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var dtypeEnum = require( '@stdlib/ndarray/base/buffer-dtype-enum' );\n*\n* var x = new Float64Array( 10 );\n*\n* var c = dtypeEnum( x );\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) 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 an object mapping data type strings to single letter abbreviations.\n*\n* @private\n* @returns {Object} object mapping data type string to single letter abbreviations\n*/\nfunction table() {\n\treturn {\n\t\t'binary': 'r',\n\n\t\t'bool': 'x',\n\n\t\t'complex64': 'c',\n\t\t'complex128': 'z',\n\n\t\t'float16': 'h',\n\t\t'bfloat16': 'e',\n\t\t'float32': 'f',\n\t\t'float64': 'd',\n\t\t'float128': 'g',\n\n\t\t'generic': 'o',\n\n\t\t'int8': 's',\n\t\t'int16': 'k',\n\t\t'int32': 'i',\n\t\t'int64': 'l',\n\t\t'int128': 'm',\n\t\t'int256': 'n',\n\n\t\t'uint8': 'b',\n\t\t'uint8c': 'a',\n\t\t'uint16': 't',\n\t\t'uint32': 'u',\n\t\t'uint64': 'v',\n\t\t'uint128': 'w',\n\t\t'uint256': 'y'\n\t};\n}\n\n\n// EXPORTS //\n\nmodule.exports = table;\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 resolve = require( './../../../base/dtype-resolve-str' );\nvar table = require( './table.js' );\n\n\n// VARIABLES //\n\nvar TABLE;\n\n\n// MAIN //\n\n/**\n* Returns the single letter character abbreviation for an underlying array data type.\n*\n* @param {*} [dtype] - data type value\n* @returns {(Object|string|null)} single letter character abbreviation(s)\n*\n* @example\n* var obj = dtypeChar();\n* // returns {...}\n*\n* @example\n* var ch = dtypeChar( 'float64' );\n* // returns 'd'\n*\n* ch = dtypeChar( 'generic' );\n* // returns 'o'\n*/\nfunction dtypeChar( dtype ) {\n\tif ( arguments.length === 0 ) {\n\t\treturn table();\n\t}\n\tif ( TABLE === void 0 ) {\n\t\tTABLE = table();\n\t}\n\treturn TABLE[ resolve( dtype ) ] || null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = dtypeChar;\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 single letter character abbreviation for an underlying array data type.\n*\n* @module @stdlib/ndarray/base/dtype-char\n*\n* @example\n* var dtypeChar = require( '@stdlib/ndarray/base/dtype-char' );\n*\n* var ch = dtypeChar( 'float64' );\n* // returns 'd'\n*\n* ch = dtypeChar( 'generic' );\n* // returns 'o'\n*\n* @example\n* var dtypeChar = require( '@stdlib/ndarray/base/dtype-char' );\n*\n* var obj = dtypeChar();\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) 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 objectInverse = require( '@stdlib/utils/object-inverse' );\nvar dtypeChar = require( './../../../base/dtype-char' );\n\n\n// VARIABLES //\n\nvar TABLE;\n\n\n// MAIN //\n\n/**\n* Returns the data type string associated with a provided single letter abbreviation.\n*\n* @param {string} ch - single letter character abbreviation\n* @returns {(Object|string|null)} data type string\n*\n* @example\n* var obj = char2dtype();\n* // returns {...}\n*\n* @example\n* var out = char2dtype( 'd' );\n* // returns 'float64'\n*\n* out = char2dtype( '(' );\n* // returns null\n*/\nfunction char2dtype( ch ) {\n\tif ( arguments.length === 0 ) {\n\t\treturn objectInverse( dtypeChar() );\n\t}\n\tif ( TABLE === void 0 ) {\n\t\tTABLE = objectInverse( dtypeChar() );\n\t}\n\treturn TABLE[ ch ] || null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = char2dtype;\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* Return the data type string associated with a provided single letter abbreviation.\n*\n* @module @stdlib/ndarray/base/char2dtype\n*\n* @example\n* var char2dtype = require( '@stdlib/ndarray/base/char2dtype' );\n*\n* var out = char2dtype();\n* // returns {...}\n*\n* @example\n* var char2dtype = require( '@stdlib/ndarray/base/char2dtype' );\n*\n* var out = char2dtype( 'd' );\n* // returns 'float64'\n*\n* out = char2dtype( '(' );\n* // returns null\n*/\n\n// MODULES //\n\nvar char2dtype = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = char2dtype;\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 an object mapping data type strings to descriptions.\n*\n* @private\n* @returns {Object} object mapping data type strings to descriptions\n*/\nfunction table() {\n\treturn {\n\t\t'binary': 'byte',\n\n\t\t'bool': 'boolean',\n\n\t\t'complex64': 'single-precision floating-point complex number',\n\t\t'complex128': 'double-precision floating-point complex number',\n\n\t\t'float16': 'half-precision floating-point number',\n\t\t'bfloat16': 'brain floating-point number',\n\t\t'float32': 'single-precision floating-point number',\n\t\t'float64': 'double-precision floating-point number',\n\t\t'float128': 'quadruple-precision floating-point number',\n\n\t\t'generic': 'generic array value',\n\n\t\t'int8': 'signed 8-bit integer',\n\t\t'int16': 'signed 16-bit integer',\n\t\t'int32': 'signed 32-bit integer',\n\t\t'int64': 'signed 64-bit integer',\n\t\t'int128': 'signed 128-bit integer',\n\t\t'int256': 'signed 256-bit integer',\n\n\t\t'uint8': 'unsigned 8-bit integer',\n\t\t'uint8c': 'unsigned 8-bit integer (clamped)',\n\t\t'uint16': 'unsigned 16-bit integer',\n\t\t'uint32': 'unsigned 32-bit integer',\n\t\t'uint64': 'unsigned 64-bit integer',\n\t\t'uint128': 'unsigned 128-bit integer',\n\t\t'uint256': 'unsigned 256-bit integer'\n\t};\n}\n\n\n// EXPORTS //\n\nmodule.exports = table;\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 resolve = require( './../../../base/dtype-resolve-str' );\nvar table = require( './table.js' );\n\n\n// VARIABLES //\n\nvar TABLE;\n\n\n// MAIN //\n\n/**\n* Returns the description for a provided data type.\n*\n* @param {*} [dtype] - data type value\n* @returns {(Object|string|null)} description(s)\n*\n* @example\n* var obj = dtypeDesc();\n* // returns {...}\n*\n* @example\n* var desc = dtypeDesc( 'float64' );\n* // returns '...'\n*\n* desc = dtypeDesc( 'generic' );\n* // returns '...'\n*/\nfunction dtypeDesc( dtype ) {\n\tif ( arguments.length === 0 ) {\n\t\treturn table();\n\t}\n\tif ( TABLE === void 0 ) {\n\t\tTABLE = table();\n\t}\n\treturn TABLE[ resolve( dtype ) ] || null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = dtypeDesc;\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* Return the description for a specified data type.\n*\n* @module @stdlib/ndarray/base/dtype-desc\n*\n* @example\n* var dtypeDesc = require( '@stdlib/ndarray/base/dtype-desc' );\n*\n* var out = dtypeDesc( 'float64' );\n* // returns '...'\n*\n* out = dtypeDesc( 'generic' );\n* // returns '...'\n*\n* @example\n* var dtypeDesc = require( '@stdlib/ndarray/base/dtype-desc' );\n*\n* var obj = dtypeDesc();\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) 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 enum2str = require( './../../../base/dtype-enum2str' );\nvar str2enum = require( './../../../base/dtype-str2enum' );\n\n\n// MAIN //\n\n/**\n* Returns the enumeration constant associated with a supported ndarray data type value.\n*\n* ## Notes\n*\n* - Downstream consumers of this function should **not** rely on specific integer values (e.g., `INT8 == 0`). Instead, the function should be used in an opaque manner.\n*\n* @param {*} dtype - data type value\n* @returns {(integer|null)} enumeration constant or null\n*\n* @example\n* var v = resolve( 'int8' );\n* // returns \n*/\nfunction resolve( dtype ) {\n\tvar t = ( typeof dtype );\n\tif ( t === 'number' ) {\n\t\treturn ( enum2str( dtype ) ) ? dtype : null;\n\t}\n\tif ( t === 'string' ) {\n\t\treturn str2enum( dtype );\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = resolve;\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* Return the enumeration constant associated with a supported ndarray data type value.\n*\n* @module @stdlib/ndarray/base/dtype-resolve-enum\n*\n* @example\n* var resolve = require( '@stdlib/ndarray/base/dtype-resolve-enum' );\n*\n* var v = resolve( 'float64' );\n* // returns \n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "{\n\t\"binary\": null,\n\t\"bool\": \"bool\",\n\t\"complex64\": \"stdlib_complex64_t\",\n\t\"complex128\": \"stdlib_complex128_t\",\n\t\"float16\": null,\n\t\"bfloat16\": null,\n\t\"float32\": \"float\",\n\t\"float64\": \"double\",\n\t\"float128\": null,\n\t\"generic\": null,\n\t\"int8\": \"int8_t\",\n\t\"int16\": \"int16_t\",\n\t\"int32\": \"int32_t\",\n\t\"int64\": \"int64_t\",\n\t\"int128\": null,\n\t\"int256\": null,\n\t\"uint8\": \"uint8_t\",\n\t\"uint8c\": null,\n\t\"uint16\": \"uint16_t\",\n\t\"uint32\": \"uint32_t\",\n\t\"uint64\": \"uint64_t\",\n\t\"uint128\": null,\n\t\"uint256\": null\n}\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 resolve = require( './../../../base/dtype-resolve-str' );\nvar TABLE = require( './table.json' );\n\n\n// MAIN //\n\n/**\n* Returns the C data type associated with a provided data type string.\n*\n* @param {*} dtype - data type value\n* @returns {(string|null)} C data type\n*\n* @example\n* var out = dtype2c( 'float64' );\n* // returns 'double'\n*\n* out = dtype2c( 'generic' );\n* // returns null\n*/\nfunction dtype2c( dtype ) {\n\treturn TABLE[ resolve( dtype ) ] || null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = dtype2c;\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* Return the C data type associated with a provided data type value.\n*\n* @module @stdlib/ndarray/base/dtype2c\n*\n* @example\n* var dtype2c = require( '@stdlib/ndarray/base/dtype2c' );\n*\n* var out = dtype2c( 'float64' );\n* // returns 'double'\n*\n* out = dtype2c( 'generic' );\n* // returns null\n*/\n\n// MODULES //\n\nvar dtype2c = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = dtype2c;\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 isArrayLikeObject = require( '@stdlib/assert/is-array-like-object' );\nvar isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar resolve = require( './../../../base/dtype-resolve-str' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Transforms a list of array argument data types into a list of signatures.\n*\n* @param {ArrayLikeObject} dtypes - list of array argument data types\n* @param {NonNegativeInteger} nin - number of input array arguments\n* @param {NonNegativeInteger} nout - number of output array arguments\n* @throws {TypeError} first argument must be an array-like object\n* @throws {TypeError} second argument must be a nonnegative integer\n* @throws {TypeError} third argument must be a nonnegative integer\n* @throws {RangeError} first argument must contain at least one element\n* @throws {RangeError} length of the first argument is incompatible with the second and third arguments\n* @returns {StringArray} list of signatures\n*\n* @example\n* var dtypes = [\n* 'float64', 'float64',\n* 'float32', 'float32'\n* ];\n*\n* var sigs = dtypes2signatures( dtypes, 1, 1 );\n* // returns [ '(float64) => (float64)', '(float32) => (float32)' ]\n*/\nfunction dtypes2signatures( dtypes, nin, nout ) {\n\tvar len;\n\tvar out;\n\tvar tmp;\n\tvar dt;\n\tvar N;\n\tvar M;\n\tvar i;\n\tvar m;\n\n\tif ( !isArrayLikeObject( dtypes ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object. Value: `%s`.', dtypes ) );\n\t}\n\tif ( !isNonNegativeInteger( nin ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a nonnegative integer. Value: `%s`.', nin ) );\n\t}\n\tif ( !isNonNegativeInteger( nout ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be a nonnegative integer. Value: `%s`.', nout ) );\n\t}\n\tlen = dtypes.length;\n\tif ( len === 0 ) {\n\t\tthrow new RangeError( 'invalid argument. First argument must contain at least one element.' );\n\t}\n\tN = nin + nout;\n\tif ( len%N !== 0 ) {\n\t\tthrow new RangeError( 'invalid arguments. Length of the first argument is incompatible with the second and third arguments.' );\n\t}\n\tout = [];\n\n\t// Create a temporary array for storing signatures...\n\ttmp = [];\n\n\t// [ '(', , ', ', ..., ') => (', , ', ', ..., ')' ] => 1+nin+nin-1+1+nout+nout-1+1 => 1 + (2*nin) + (2*nout) => 1 + (2*(nin+nout))\n\tM = 2 * N;\n\tm = 2 * nin;\n\tfor ( i = 0; i <= M; i++ ) {\n\t\tif ( i === 0 ) {\n\t\t\tif ( i === m ) {\n\t\t\t\ttmp.push( '() => (' );\n\t\t\t} else {\n\t\t\t\ttmp.push( '(' );\n\t\t\t}\n\t\t} else if ( i === M ) {\n\t\t\tif ( i === m ) {\n\t\t\t\ttmp.push( ') => ()' );\n\t\t\t} else {\n\t\t\t\ttmp.push( ')' );\n\t\t\t}\n\t\t} else if ( i === m ) {\n\t\t\ttmp.push( ') => (' );\n\t\t} else if ( i%2 === 1 ) {\n\t\t\ttmp.push( '' );\n\t\t} else {\n\t\t\ttmp.push( ', ' );\n\t\t}\n\t}\n\tfor ( i = 0; i < len; i++ ) {\n\t\tdt = resolve( dtypes[ i ] );\n\t\tif ( dt === null ) {\n\t\t\tdt = dtypes[ i ];\n\t\t}\n\t\tm = i % N;\n\t\ttmp[ (2*m)+1 ] = dt;\n\t\tif ( m === N-1 ) {\n\t\t\tout.push( tmp.join( '' ) );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = dtypes2signatures;\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* Transform a list of array argument data types into a list of signatures.\n*\n* @module @stdlib/ndarray/base/dtypes2signatures\n*\n* @example\n* var dtypes2signatures = require( '@stdlib/ndarray/base/dtypes2signatures' );\n*\n* var dtypes = [\n* 'float64', 'float64',\n* 'float32', 'float32'\n* ];\n*\n* var sigs = dtypes2signatures( dtypes, 2, 0 );\n* // returns [ '(float64) => (float64)', '(float32) => (float32)' ]\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( './../../../base/shape2strides' );\nvar strides2offset = require( './../../../base/strides2offset' );\nvar ndarray = require( './../../../base/ctor' );\nvar numel = require( './../../../base/numel' );\nvar emptyArray = require( '@stdlib/array/empty' );\nvar allocUnsafe = require( '@stdlib/buffer/alloc-unsafe' );\n\n\n// MAIN //\n\n/**\n* Creates an uninitialized ndarray having a specified shape and data type.\n*\n* @param {string} dtype - data type\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - array order\n* @throws {TypeError} first argument must be a recognized data type\n* @returns {ndarray} ndarray\n*\n* @example\n* var arr = empty( 'float32', [ 2, 2 ], 'row-major' );\n* // returns \n*\n* var sh = arr.shape;\n* // returns [ 2, 2 ]\n*\n* var dt = arr.dtype;\n* // returns 'float32'\n*/\nfunction empty( dtype, shape, order ) {\n\tvar ndims;\n\tvar buf;\n\tvar len;\n\tvar st;\n\n\tndims = shape.length;\n\tif ( ndims > 0 ) {\n\t\tlen = numel( shape );\n\t\tst = shape2strides( shape, order );\n\t} else {\n\t\t// For 0-dimensional arrays, the buffer should contain a single element...\n\t\tlen = 1;\n\t\tst = [ 0 ];\n\t}\n\tif ( dtype === 'binary' ) {\n\t\tbuf = allocUnsafe( len );\n\t} else {\n\t\tbuf = emptyArray( len, dtype );\n\t}\n\treturn new ndarray( dtype, buf, shape, st, strides2offset( shape, st ), order ); // eslint-disable-line max-len\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 ndarray having a specified shape and data type.\n*\n* @module @stdlib/ndarray/base/empty\n*\n* @example\n* var empty = require( '@stdlib/ndarray/base/empty' );\n*\n* var arr = empty( 'float32', [ 2, 2 ], 'row-major' );\n* // returns \n*\n* var sh = arr.shape;\n* // returns [ 2, 2 ]\n*\n* var dt = arr.dtype;\n* // returns 'float32'\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( './../../../base/shape2strides' );\nvar strides2offset = require( './../../../base/strides2offset' );\nvar numel = require( './../../../base/numel' );\nvar getDType = require( './../../../base/dtype' );\nvar getShape = require( './../../../base/shape' );\nvar getOrder = require( './../../../base/order' );\nvar emptyArray = require( '@stdlib/array/empty' );\nvar allocUnsafe = require( '@stdlib/buffer/alloc-unsafe' );\n\n\n// MAIN //\n\n/**\n* Creates an uninitialized ndarray having the same shape and data type as a provided ndarray.\n*\n* @param {ndarray} x - input array\n* @throws {TypeError} first argument must have a recognized data type\n* @returns {ndarray} ndarray\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/base/zeros' );\n*\n* var x = zeros( 'float32', [ 2, 2 ], 'row-major' );\n* // returns \n*\n* var y = emptyLike( x );\n* // returns \n*\n* var sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* var dt = y.dtype;\n* // returns 'float32'\n*/\nfunction emptyLike( x ) {\n\tvar ndims;\n\tvar len;\n\tvar buf;\n\tvar ord;\n\tvar sh;\n\tvar st;\n\tvar dt;\n\n\tdt = getDType( x );\n\tsh = getShape( x, true );\n\tord = getOrder( x );\n\n\tndims = sh.length;\n\tif ( ndims > 0 ) {\n\t\tlen = numel( sh );\n\t\tst = shape2strides( sh, ord );\n\t} else {\n\t\t// For 0-dimensional arrays, the buffer should contain a single element...\n\t\tlen = 1;\n\t\tst = [ 0 ];\n\t}\n\tif ( dt === 'binary' ) {\n\t\tbuf = allocUnsafe( len );\n\t} else {\n\t\tbuf = emptyArray( len, dt );\n\t}\n\treturn new x.constructor( dt, buf, sh, st, strides2offset( sh, st ), ord );\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 ndarray having the same shape and data type as a provided ndarray.\n*\n* @module @stdlib/ndarray/base/empty-like\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/base/zeros' );\n* var emptyLike = require( '@stdlib/ndarray/base/empty-like' );\n*\n* var x = zeros( 'float32', [ 2, 2 ], 'row-major' );\n* // returns \n*\n* var y = emptyLike( x );\n* // returns \n*\n* var sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* var dt = y.dtype;\n* // returns 'float32'\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 isReadOnly = require( './../../../base/assert/is-read-only' );\nvar getDType = require( './../../../base/dtype' );\nvar getShape = require( './../../../base/shape' );\nvar getStrides = require( './../../../base/strides' );\nvar getOffset = require( './../../../base/offset' );\nvar getOrder = require( './../../../base/order' );\nvar getData = require( './../../../base/data-buffer' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Expands the shape of an array by inserting a new dimension of size one at a specified axis.\n*\n* ## Notes\n*\n* - A provided axis must reside on the interval `[-N-1, N]`, where `N` is the rank (i.e., number of dimensions) of the provided input array. If provided a negative `axis`, the axis position at which to insert a singleton dimension is computed as `N + axis + 1`. Hence, if provided `-1`, the resolved axis position is `N` (i.e., a singleton dimension is appended to the input array).\n*\n* @param {ndarray} x - input array\n* @param {integer} axis - axis at which to insert a singleton dimension\n* @throws {RangeError} must provide a valid axis\n* @returns {ndarray} output array\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var shx = x.shape;\n* // returns [ 2, 2 ]\n*\n* var y = expandDimensions( x, 1 );\n* // returns \n*\n* var shy = y.shape;\n* // returns [ 2, 1, 2 ]\n*\n* var v = y.get( 0, 0, 0 );\n* // returns 1\n*\n* v = y.get( 0, 0, 1 );\n* // returns 2\n*\n* v = y.get( 1, 0, 0 );\n* // returns 3\n*\n* v = y.get( 1, 0, 1 );\n* // returns 4\n*/\nfunction expandDimensions( x, axis ) {\n\tvar strides;\n\tvar shape;\n\tvar ord;\n\tvar sh;\n\tvar st;\n\tvar N;\n\tvar i;\n\n\tsh = getShape( x, false );\n\tst = getStrides( x, false );\n\tord = getOrder( x );\n\tN = sh.length;\n\n\tstrides = [];\n\tshape = [];\n\n\tif ( axis < 0 ) {\n\t\tif ( axis < -N-1 ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Specified axis is out-of-bounds. Must be on the interval: [-%u-1, %u]. Value: `%d`.', N, N, axis ) );\n\t\t}\n\t\taxis += N + 1;\n\t} else if ( axis > N ) {\n\t\tthrow new RangeError( format( 'invalid argument. Specified axis is out-of-bounds. Must be on the interval: [-%u-1, %u]. Value: `%d`.', N, N, axis ) );\n\t}\n\tif ( axis === 0 ) {\n\t\t// Prepend singleton dimension...\n\t\tshape.push( 1 );\n\t\tstrides.push( st[ 0 ] );\n\n\t\t// Copy remaining dimensions...\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tshape.push( sh[ i ] );\n\t\t\tstrides.push( st[ i ] );\n\t\t}\n\t} else if ( axis === N ) {\n\t\t// Copy dimensions...\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tshape.push( sh[ i ] );\n\t\t\tstrides.push( st[ i ] );\n\t\t}\n\t\t// Append singleton dimension...\n\t\tshape.push( 1 );\n\t\tstrides.push( st[ N-1 ] );\n\t} else {\n\t\t// Insert a singleton dimension...\n\t\tfor ( i = 0; i < N+1; i++ ) {\n\t\t\tif ( i === axis ) {\n\t\t\t\tshape.push( 1 );\n\t\t\t\tif ( ord === 'row-major' ) {\n\t\t\t\t\tstrides.push( st[ i-1 ] );\n\t\t\t\t} else { // ord === 'column-major'\n\t\t\t\t\tstrides.push( st[ i ] );\n\t\t\t\t}\n\t\t\t} else if ( i < axis ) {\n\t\t\t\tshape.push( sh[ i ] );\n\t\t\t\tstrides.push( st[ i ] );\n\t\t\t} else { // i > axis\n\t\t\t\tshape.push( sh[ i-1 ] );\n\t\t\t\tstrides.push( st[ i-1 ] );\n\t\t\t}\n\t\t}\n\t}\n\tif ( isReadOnly( x ) ) {\n\t\t// If provided a read-only view, the returned array should also be read-only...\n\t\treturn new x.constructor( getDType( x ), getData( x ), shape, strides, getOffset( x ), ord, { // eslint-disable-line max-len\n\t\t\t'readonly': true\n\t\t});\n\t}\n\treturn new x.constructor( getDType( x ), getData( x ), shape, strides, getOffset( x ), ord ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nmodule.exports = expandDimensions;\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* Expand the shape of an array by inserting a new dimension of size one at a specified axis.\n*\n* @module @stdlib/ndarray/base/expand-dimensions\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n* var expandDimensions = require( '@stdlib/ndarray/base/expand-dimensions' );\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var shx = x.shape;\n* // returns [ 2, 2 ]\n*\n* var y = expandDimensions( x, 1 );\n* // returns \n*\n* var shy = y.shape;\n* // returns [ 2, 1, 2 ]\n*\n* var v = y.get( 0, 0, 0 );\n* // returns 1\n*\n* v = y.get( 0, 0, 1 );\n* // returns 2\n*\n* v = y.get( 1, 0, 0 );\n* // returns 3\n*\n* v = y.get( 1, 0, 1 );\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Resolves the index offset of the first element indexed by a normalized multi-slice.\n*\n* @private\n* @param {MultiSlice} slice - normalized multi-slice object\n* @param {IntegerArray} strides - array strides\n* @param {NonNegativeInteger} offset - array index offset\n* @returns {NonNegativeInteger} index offset of the first element indexed by a normalized multi-slice object\n*/\nfunction sliceStart( slice, strides, offset ) {\n\tvar data;\n\tvar idx;\n\tvar i;\n\n\tdata = slice.data;\n\tidx = offset;\n\tfor ( i = 0; i < data.length; i++ ) {\n\t\tidx += strides[ i ] * data[ i ].start;\n\t}\n\treturn idx;\n}\n\n\n// EXPORTS //\n\nmodule.exports = sliceStart;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Resolves slice strides for a provided normalized multi-slice object.\n*\n* @private\n* @param {MultiSlice} slice - normalized multi-slice object\n* @param {IntegerArray} strides - array strides\n* @param {NonNegativeIntegerArray} rdims - indices of non-reduced dimensions\n* @returns {IntegerArray} slice strides\n*\n* @example\n* var Slice = require( '@stdlib/slice/ctor' );\n* var MultiSlice = require( '@stdlib/slice/multi' );\n*\n* var s = new MultiSlice( new Slice( 2, 3, 1 ), new Slice( 10, null, -2 ) );\n* // returns \n*\n* var strides = slice2strides( s, [ 8, 2 ], [ 1 ] );\n* // returns [ -4 ]\n*/\nfunction slice2strides( slice, strides, rdims ) {\n\tvar data;\n\tvar out;\n\tvar i;\n\tvar j;\n\n\tdata = slice.data;\n\tout = [];\n\tfor ( i = 0; i < rdims.length; i++ ) {\n\t\tj = rdims[ i ];\n\t\tout.push( strides[j] * data[j].step );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = slice2strides;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 buffer = require( './../../../base/buffer' );\nvar zeros = require( '@stdlib/array/base/zeros' );\n\n\n// MAIN //\n\n/**\n* Returns an empty n-dimensional ndarray.\n*\n* @private\n* @param {Function} ctor - ndarray constructor\n* @param {string} dtype - array data type\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - layout order\n* @param {boolean} readonly - boolean indicating whether a returned array should be read-only\n* @returns {ndarray} empty ndarray\n*/\nfunction empty( ctor, dtype, shape, order, readonly ) {\n\tvar strides;\n\tvar ndims;\n\n\tndims = shape.length;\n\tif ( ndims === 0 ) {\n\t\tstrides = [ 0 ];\n\t} else {\n\t\tstrides = zeros( ndims );\n\t}\n\treturn new ctor( dtype, buffer( dtype, 0 ), shape, strides, 0, order, {\n\t\t'readonly': readonly\n\t});\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 normalizeMultiSlice = require( '@stdlib/slice/base/normalize-multi-slice' );\nvar nonreducedDimensions = require( '@stdlib/slice/base/nonreduced-dimensions' );\nvar sliceShape = require( '@stdlib/slice/base/shape' );\nvar take = require( '@stdlib/array/base/take-indexed' );\nvar zeros = require( '@stdlib/array/base/zeros' );\nvar numel = require( './../../../base/numel' );\nvar getDType = require( './../../../base/dtype' );\nvar getShape = require( './../../../base/shape' );\nvar getStrides = require( './../../../base/strides' );\nvar getOffset = require( './../../../base/offset' );\nvar getOrder = require( './../../../base/order' );\nvar getData = require( './../../../base/data-buffer' );\nvar format = require( '@stdlib/string/format' );\nvar sliceStart = require( './slice_start.js' );\nvar slice2strides = require( './slice_strides.js' );\nvar empty = require( './empty.js' );\n\n\n// MAIN //\n\n/**\n* Returns a view of an input ndarray.\n*\n* @param {ndarray} x - input array\n* @param {MultiSlice} s - multi-slice object\n* @param {boolean} strict - boolean indicating whether to enforce strict bounds checking\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @throws {RangeError} number of slice dimensions must match the number of array dimensions\n* @throws {RangeError} slice exceeds array bounds\n* @returns {ndarray} ndarray view\n*\n* @example\n* var Slice = require( '@stdlib/slice/ctor' );\n* var MultiSlice = require( '@stdlib/slice/multi' );\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var s = new MultiSlice( new Slice( null, null, -2 ), new Slice( null, null, -1 ) );\n* // returns \n*\n* var y = slice( x, s, false, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 6.0, 5.0 ], [ 2.0, 1.0 ] ]\n*/\nfunction slice( x, s, strict, writable ) {\n\tvar strides;\n\tvar offset;\n\tvar dtype;\n\tvar shape;\n\tvar order;\n\tvar sdims;\n\tvar ndims;\n\tvar ctor;\n\tvar sh;\n\tvar ns;\n\n\t// Retrieve array meta data:\n\tdtype = getDType( x );\n\tshape = getShape( x, true );\n\tstrides = getStrides( x, true );\n\toffset = getOffset( x );\n\torder = getOrder( x );\n\tndims = shape.length;\n\n\t// Ensure that the number of array dimensions matches the number of slices:\n\tif ( s.ndims !== ndims ) {\n\t\tthrow new RangeError( format( 'invalid argument. Number of slice dimensions does not match the number of array dimensions. Array shape: (%s). Slice dimensions: %u.', shape.join( ',' ), s.ndims ) );\n\t}\n\t// Resolve the output array constructor:\n\tctor = x.constructor;\n\n\t// If provided a zero-dimensional input array, return a zero-dimensional array view...\n\tif ( ndims === 0 ) {\n\t\treturn new ctor( dtype, getData( x ), shape, strides, offset, order, {\n\t\t\t'readonly': !writable\n\t\t});\n\t}\n\t// Resolve the indices of the non-reduced dimensions:\n\tsdims = nonreducedDimensions( s );\n\n\t// Normalize the slice object based on the array shape:\n\tns = normalizeMultiSlice( s, shape, true );\n\n\t// Check whether the slice exceeds array bounds...\n\tif ( ns.code ) {\n\t\tif ( strict ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Slice exceeds array bounds. Array shape: (%s).', shape.join( ',' ) ) );\n\t\t}\n\t\t// Normalize again, this time allowing for out-of-bounds indices:\n\t\tns = normalizeMultiSlice( s, shape, false );\n\n\t\t// Compute the slice shape:\n\t\tsh = sliceShape( ns );\n\n\t\t// If the non-reduced dimensions contain elements, this means that at least one reduced dimension exceeded array bounds; in which case, we generate a shape containing zeros:\n\t\tif ( numel( take( sh, sdims ) ) > 0 ) {\n\t\t\tsh = zeros( sh.length );\n\t\t}\n\t} else {\n\t\t// Compute the slice shape:\n\t\tsh = sliceShape( ns );\n\t}\n\t// If the slice does not contain any elements, return an empty array...\n\tif ( numel( sh ) === 0 ) {\n\t\treturn empty( ctor, dtype, take( sh, sdims ), order, !writable );\n\t}\n\t// Resolve the index offset of the first element indexed by the slice:\n\toffset = sliceStart( ns, strides, offset ); // TODO: @stdlib/ndarray/base/sind2bind\n\n\t// Remove reduced dimensions from the slice shape:\n\tsh = take( sh, sdims );\n\n\t// If all dimensions were reduced, return a zero-dimensional array...\n\tif ( sh.length === 0 ) {\n\t\treturn new ctor( dtype, getData( x ), [], [ 0 ], offset, order, {\n\t\t\t'readonly': !writable\n\t\t});\n\t}\n\t// Update strides according to slice steps:\n\tstrides = slice2strides( ns, strides, sdims ); // TODO: @stdlib/ndarray/base/slice2strides???\n\n\t// Return a slice view:\n\treturn new ctor( dtype, getData( x ), sh, strides, offset, order, {\n\t\t'readonly': !writable\n\t});\n}\n\n\n// EXPORTS //\n\nmodule.exports = slice;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 view of an input ndarray.\n*\n* @module @stdlib/ndarray/base/slice\n*\n* @example\n* var Slice = require( '@stdlib/slice/ctor' );\n* var MultiSlice = require( '@stdlib/slice/multi' );\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var slice = require( '@stdlib/ndarray/base/slice' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var s = new MultiSlice( new Slice( null, null, -2 ), new Slice( null, null, -1 ) );\n* // returns \n*\n* var y = slice( x, s, false, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 6.0, 5.0 ], [ 2.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 the number of ndarray dimensions.\n*\n* @param {ndarrayLike} x - input ndarray\n* @returns {NonNegativeInteger} number of dimensions\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n*\n* var n = ndims( zeros( [ 3, 3, 3 ] ) );\n* // returns 3\n*/\nfunction ndims( x ) {\n\tvar n = x.ndims; // Note: intentionally cache in case `ndims` is lazily resolved via accessor\n\tif ( typeof n === 'number' ) {\n\t\treturn n;\n\t}\n\treturn x.shape.length;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ndims;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 number of ndarray dimensions.\n*\n* @module @stdlib/ndarray/base/ndims\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n* var ndims = require( '@stdlib/ndarray/base/ndims' );\n*\n* var n = ndims( zeros( [ 3, 3, 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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 args2multislice = require( '@stdlib/slice/base/args2multislice' );\nvar Slice = require( '@stdlib/slice/ctor' );\nvar slice = require( './../../../base/slice' );\nvar filled = require( '@stdlib/array/base/filled' );\nvar ndims = require( './../../../base/ndims' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns a view of an input ndarray in which the order of elements along a specified dimension is reversed.\n*\n* @param {ndarray} x - input array\n* @param {integer} dim - index of dimension to reverse\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @throws {TypeError} first argument must be an ndarray having one or more dimensions\n* @throws {RangeError} dimension index exceeds the number of dimensions\n* @returns {ndarray} ndarray view\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = reverseDimension( x, 0, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 3, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 5.0, 6.0 ], [ 3.0, 4.0 ], [ 1.0, 2.0 ] ]\n*/\nfunction reverseDimension( x, dim, writable ) {\n\tvar args;\n\tvar N;\n\tvar d;\n\n\t// Retrieve the number of array dimensions:\n\tN = ndims( x );\n\n\t// Check whether we were provided a zero-dimensional array...\n\tif ( N === 0 ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray having one or more dimensions. Number of dimensions: %d.', N ) );\n\t}\n\t// Normalize the dimension index...\n\td = dim;\n\tif ( d < 0 ) {\n\t\td += N;\n\t\tif ( d < 0 ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Dimension index exceeds the number of dimensions. Number of dimensions: %d. Value: `%d`.', N, dim ) );\n\t\t}\n\t} else if ( d >= N ) {\n\t\tthrow new RangeError( format( 'invalid argument. Dimension index exceeds the number of dimensions. Number of dimensions: %d. Value: `%d`.', N, dim ) );\n\t}\n\t// Define a list of MultiSlice constructor arguments:\n\targs = filled( null, N );\n\targs[ d ] = new Slice( null, null, -1 );\n\n\t// Return a new array view:\n\treturn slice( x, args2multislice( args ), true, writable );\n}\n\n\n// EXPORTS //\n\nmodule.exports = reverseDimension;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 view of an input ndarray in which the order of elements along a specified dimension is reversed.\n*\n* @module @stdlib/ndarray/base/reverse-dimension\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var reverseDimension = require( '@stdlib/ndarray/base/reverse-dimension' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = reverseDimension( x, 0, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 3, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 5.0, 6.0 ], [ 3.0, 4.0 ], [ 1.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 MultiSlice = require( '@stdlib/slice/multi' );\nvar reverseDimension = require( './../../../base/reverse-dimension' );\nvar slice = require( './../../../base/slice' );\nvar ndims = require( './../../../base/ndims' );\n\n\n// MAIN //\n\n/**\n* Returns a view of an input ndarray in which the order of elements along the last dimension is reversed.\n*\n* @param {ndarray} x - input array\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @returns {ndarray} ndarray view\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = fliplr( x, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 3, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 2.0, 1.0 ], [ 4.0, 3.0 ], [ 6.0, 5.0 ] ]\n*/\nfunction fliplr( x, writable ) {\n\t// Check whether we were provided a zero-dimensional array...\n\tif ( ndims( x ) === 0 ) {\n\t\t// Nothing to reverse so just return a new view:\n\t\treturn slice( x, new MultiSlice(), true, writable );\n\t}\n\treturn reverseDimension( x, -1, writable );\n}\n\n\n// EXPORTS //\n\nmodule.exports = fliplr;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 view of an input ndarray in which the order of elements along the last dimension is reversed.\n*\n* @module @stdlib/ndarray/base/fliplr\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var fliplr = require( '@stdlib/ndarray/base/fliplr' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = fliplr( x, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 3, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 2.0, 1.0 ], [ 4.0, 3.0 ], [ 6.0, 5.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 MultiSlice = require( '@stdlib/slice/multi' );\nvar reverseDimension = require( './../../../base/reverse-dimension' );\nvar slice = require( './../../../base/slice' );\nvar ndims = require( './../../../base/ndims' );\n\n\n// MAIN //\n\n/**\n* Returns a view of an input ndarray in which the order of elements along the second-to-last dimension is reversed.\n*\n* @param {ndarray} x - input array\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @returns {ndarray} ndarray view\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = flipud( x, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 3, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 5.0, 6.0 ], [ 3.0, 4.0 ], [ 1.0, 2.0 ] ]\n*/\nfunction flipud( x, writable ) {\n\tvar N = ndims( x );\n\n\t// Check whether we were provided a zero-dimensional array...\n\tif ( N === 0 ) {\n\t\t// Nothing to reverse, so just return a new view:\n\t\treturn slice( x, new MultiSlice(), true, writable );\n\t}\n\t// Check whether we were provided a one-dimensional array...\n\tif ( N === 1 ) {\n\t\t// No second-to-last dimension to reverse, so just return a new view:\n\t\treturn slice( x, new MultiSlice( null ), true, writable );\n\t}\n\treturn reverseDimension( x, -2, writable );\n}\n\n\n// EXPORTS //\n\nmodule.exports = flipud;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 view of an input ndarray in which the order of elements along the second-to-last dimension is reversed.\n*\n* @module @stdlib/ndarray/base/flipud\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var flipud = require( '@stdlib/ndarray/base/flipud' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = flipud( x, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 3, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 5.0, 6.0 ], [ 3.0, 4.0 ], [ 1.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// MODULES //\n\nvar isAccessorArray = require( '@stdlib/array/base/assert/is-accessor-array' );\nvar accessorSetter = require( '@stdlib/array/base/accessor-setter' );\nvar setter = require( '@stdlib/array/base/setter' );\nvar buffer = require( './../../../base/buffer' );\nvar ndarray = require( './../../../base/ctor' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns a zero-dimensional ndarray containing a provided scalar value.\n*\n* @param {*} value - scalar value\n* @param {string} dtype - output array data type\n* @param {string} order - memory layout (either 'row-major' or 'column-major')\n* @throws {TypeError} second argument must be a recognized data type\n* @returns {ndarray} ndarray\n*\n* @example\n* var x = scalar2ndarray( 1.0, 'float64', 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns []\n*\n* var dt = x.dtype;\n* // returns 'float64'\n*\n* var v = x.get();\n* // returns 1.0\n*/\nfunction scalar2ndarray( value, dtype, order ) {\n\tvar buf;\n\tvar set;\n\n\tbuf = buffer( dtype, 1 );\n\tif ( buf === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a recognized data type. Value: `%s`.', dtype ) );\n\t}\n\tif ( /^complex/.test( dtype ) && typeof value === 'number' ) {\n\t\tvalue = [ value, 0.0 ]; // note: we're assuming that the ComplexXXArray setter accepts an array of interleaved real and imaginary components\n\t}\n\tif ( isAccessorArray( buf ) ) {\n\t\tset = accessorSetter( dtype );\n\t} else {\n\t\tset = setter( dtype );\n\t}\n\tset( buf, 0, value );\n\treturn new ndarray( dtype, buf, [], [ 0 ], 0, order );\n}\n\n\n// EXPORTS //\n\nmodule.exports = scalar2ndarray;\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 a scalar value to a zero-dimensional ndarray.\n*\n* @module @stdlib/ndarray/base/from-scalar\n*\n* @example\n* var scalar2ndarray = require( '@stdlib/ndarray/base/from-scalar' );\n*\n* var x = scalar2ndarray( 1.0, 'float64', 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns []\n*\n* var dt = x.dtype;\n* // returns 'float64'\n*\n* var v = x.get();\n* // returns 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 format = require( '@stdlib/string/format' );\nvar trunc = require( '@stdlib/math/base/special/trunc' );\n\n\n// MAIN //\n\n/**\n* Converts a linear index to an array of subscripts.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - location of the first indexed value **based** on the stride array\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @param {integer} idx - linear index\n* @param {string} mode - specifies how to handle a linear index which exceeds array dimensions\n* @param {(Array|TypedArray|Object)} out - destination object\n* @throws {RangeError} linear index must not exceed array dimensions\n* @returns {(Array|TypedArray|Object)} subscripts\n*\n* @example\n* var shape = [ 3, 3, 3 ];\n* var strides = [ 9, 6, 1 ];\n* var offset = 0;\n* var order = 'row-major';\n*\n* var s = [ 0, 0, 0 ];\n* var out = ind2sub( shape, strides, offset, order, 17, 'throw', s );\n* // returns [ 1, 2, 2 ]\n*\n* var bool = ( out === s );\n* // returns true\n*/\nfunction ind2sub( shape, strides, offset, order, idx, mode, out ) {\n\tvar ndims;\n\tvar len;\n\tvar k;\n\tvar s;\n\tvar i;\n\n\tndims = shape.length;\n\tlen = 1;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tlen *= shape[ i ];\n\t}\n\tif ( mode === 'clamp' ) {\n\t\tif ( idx < 0 ) {\n\t\t\tidx = 0;\n\t\t} else if ( idx >= len ) {\n\t\t\tidx = len - 1;\n\t\t}\n\t} else if ( mode === 'wrap' ) {\n\t\tif ( idx < 0 ) {\n\t\t\tidx += len; // slight optimization to avoid modulo arithmetic when |idx| <= len\n\t\t\tif ( idx < 0 ) {\n\t\t\t\tidx %= len;\n\t\t\t\tif ( idx !== 0 ) {\n\t\t\t\t\tidx += len;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if ( idx >= len ) {\n\t\t\tidx -= len; // slight optimization to avoid modulo arithmetic when len < idx <= 2*len\n\t\t\tif ( idx >= len ) {\n\t\t\t\tidx %= len;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif ( mode === 'normalize' && idx < 0 ) {\n\t\t\tidx += len;\n\t\t}\n\t\tif ( idx < 0 || idx >= len ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Linear index must not exceed array dimensions. Number of array elements: `%u`. Value: `%d`.', len, idx ) );\n\t\t}\n\t}\n\tif ( offset === 0 ) {\n\t\tif ( order === 'column-major' ) {\n\t\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\t\ts = idx % shape[ i ];\n\t\t\t\tidx -= s;\n\t\t\t\tidx /= shape[ i ];\n\t\t\t\tout[ i ] = s;\n\t\t\t}\n\t\t\treturn out;\n\t\t}\n\t\t// Case: row-major\n\t\tfor ( i = ndims-1; i >= 0; i-- ) {\n\t\t\ts = idx % shape[ i ];\n\t\t\tidx -= s;\n\t\t\tidx /= shape[ i ];\n\t\t\tout[ i ] = s;\n\t\t}\n\t\treturn out;\n\t}\n\tif ( order === 'column-major' ) {\n\t\tfor ( i = ndims-1; i >= 0; i-- ) {\n\t\t\ts = strides[ i ];\n\t\t\tif ( s < 0 ) {\n\t\t\t\tk = trunc( idx/s );\n\t\t\t\tidx -= k * s;\n\t\t\t\tout[ i ] = shape[ i ] - 1 + k;\n\t\t\t} else {\n\t\t\t\tk = trunc( idx/s );\n\t\t\t\tidx -= k * s;\n\t\t\t\tout[ i ] = k;\n\t\t\t}\n\t\t}\n\t\treturn out;\n\t}\n\t// Case: row-major\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\ts = strides[ i ];\n\t\tif ( s < 0 ) {\n\t\t\tk = trunc( idx/s );\n\t\t\tidx -= k * s;\n\t\t\tout[ i ] = shape[ i ] - 1 + k;\n\t\t} else {\n\t\t\tk = trunc( idx/s );\n\t\t\tidx -= k * s;\n\t\t\tout[ i ] = k;\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ind2sub;\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 zeros = require( '@stdlib/array/base/zeros' );\nvar getSubscripts = require( './assign.js' );\n\n\n// MAIN //\n\n/**\n* Converts a linear index to an array of subscripts.\n*\n* ## Notes\n*\n* - The function accepts the following \"modes\":\n*\n* - **throw**: throw an error when a linear index exceeds array dimensions.\n* - **normalize**: normalize negative indices and throw an error when a linear index exceeds array dimensions.\n* - **wrap**: wrap around a linear index exceeding array dimensions using modulo arithmetic.\n* - **clamp**: set a linear index exceeding array dimensions to either `0` (minimum linear index) or the maximum linear index.\n*\n* - When provided a stride array containing negative strides, if an `offset` is greater than `0`, the function interprets the linear index as an index into the underlying data buffer for the array, thus returning subscripts from the perspective of that buffer. If an `offset` is equal to `0`, the function treats the linear index as an index into an array view, thus returning subscripts from the perspective of that view.\n*\n* ```text\n* Dims: 2x2\n* Buffer: [ 1, 2, 3, 4 ]\n*\n* View = [ a00, a01,\n* a10, a11 ]\n*\n* Strides: 2,1\n* Offset: 0\n*\n* View = [ 1, 2,\n* 3, 4 ]\n*\n* Strides: 2,-1\n* Offset: 1\n*\n* View = [ 2, 1,\n* 4, 3 ]\n*\n* Strides: -2,1\n* Offset: 2\n*\n* View = [ 3, 4,\n* 1, 2 ]\n*\n* Strides: -2,-1\n* Offset: 3\n*\n* View = [ 4, 3,\n* 2, 1 ]\n* ```\n*\n* ```javascript\n* var shape = [ 2, 2 ];\n* var order = 'row-major';\n* var strides = [ -2, 1 ];\n* var offset = 2;\n* var mode = 'throw';\n*\n* // From the perspective of a view...\n* var s = ind2sub( shape, strides, 0, order, 0, mode );\n* // returns [ 0, 0 ]\n*\n* s = ind2sub( shape, strides, 0, order, 1, mode );\n* // returns [ 0, 1 ]\n*\n* s = ind2sub( shape, strides, 0, order, 2, mode );\n* // returns [ 1, 0 ]\n*\n* s = ind2sub( shape, strides, 0, order, 3, mode );\n* // returns [ 1, 1 ]\n*\n* // From the perspective of an underlying buffer...\n* s = ind2sub( shape, strides, offset, order, 0, mode );\n* // returns [ 1, 0 ]\n*\n* s = ind2sub( shape, strides, offset, order, 1, mode );\n* // returns [ 1, 1 ]\n*\n* s = ind2sub( shape, strides, offset, order, 2, mode );\n* // returns [ 0, 0 ]\n*\n* s = ind2sub( shape, strides, offset, order, 3, mode );\n* // returns [ 0, 1 ]\n* ```\n*\n* In short, from the perspective of a view, view data is always ordered.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - location of the first indexed value **based** on the stride array\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @param {integer} idx - linear index\n* @param {string} mode - specifies how to handle a linear index which exceeds array dimensions\n* @throws {RangeError} linear index must not exceed array dimensions\n* @returns {Array} subscripts\n*\n* @example\n* var shape = [ 3, 3, 3 ];\n* var strides = [ 9, 6, 1 ];\n* var offset = 0;\n* var order = 'row-major';\n*\n* var s = ind2sub( shape, strides, offset, order, 17, 'throw' );\n* // returns [ 1, 2, 2 ]\n*/\nfunction ind2sub( shape, strides, offset, order, idx, mode ) {\n\treturn getSubscripts( shape, strides, offset, order, idx, mode, zeros( shape.length ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nmodule.exports = ind2sub;\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 a linear index to an array of subscripts.\n*\n* @module @stdlib/ndarray/base/ind2sub\n*\n* @example\n* var ind2sub = require( '@stdlib/ndarray/base/ind2sub' );\n*\n* var shape = [ 3, 3, 3 ];\n* var strides = [ 9, 6, 1 ];\n* var offset = 0;\n*\n* var s = ind2sub( shape, strides, offset, 'row-major', 17, 'throw' );\n* // returns [ 1, 2, 2 ]\n*\n* @example\n* var ind2sub = require( '@stdlib/ndarray/base/ind2sub' );\n*\n* var shape = [ 3, 3, 3 ];\n* var strides = [ 9, 6, 1 ];\n* var offset = 0;\n*\n* var s = [ 0, 0, 0 ];\n* var out = ind2sub.assign( shape, strides, offset, 'row-major', 17, 'throw', s );\n* // returns [ 1, 2, 2 ]\n*\n* var bool = ( out === s );\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// MAIN //\n\n/**\n* Computes the maximum linear index in an underlying data buffer accessible to an array view.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @returns {NonNegativeInteger} linear index\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ 10, 1 ];\n* var offset = 0;\n*\n* var idx = maxViewBufferIndex( shape, strides, offset );\n* // returns 99\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ -10, -1 ];\n* var offset = 99;\n*\n* var idx = maxViewBufferIndex( shape, strides, offset );\n* // returns 99\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ 1, 10 ];\n* var offset = 0;\n*\n* var idx = maxViewBufferIndex( shape, strides, offset );\n* // returns 99\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ -1, -10 ];\n* var offset = 99;\n*\n* var idx = maxViewBufferIndex( shape, strides, offset );\n* // returns 99\n*/\nfunction maxViewBufferIndex( shape, strides, offset ) {\n\tvar ndims;\n\tvar idx;\n\tvar i;\n\n\tndims = shape.length;\n\tidx = offset;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tif ( shape[ i ] === 0 ) {\n\t\t\treturn offset;\n\t\t}\n\t\tif ( strides[ i ] > 0 ) {\n\t\t\tidx += strides[ i ] * ( shape[ i ] - 1 );\n\t\t}\n\t}\n\treturn idx;\n}\n\n\n// EXPORTS //\n\nmodule.exports = maxViewBufferIndex;\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* Compute the maximum linear index in an underlying data buffer accessible to an array view.\n*\n* @module @stdlib/ndarray/base/max-view-buffer-index\n*\n* @example\n* var maxViewBufferIndex = require( '@stdlib/ndarray/base/max-view-buffer-index' );\n*\n* var shape = [ 10, 10 ];\n* var strides = [ 10, 1 ];\n* var offset = 0;\n*\n* var idx = maxViewBufferIndex( shape, strides, offset );\n* // returns 99\n*\n* @example\n* var maxViewBufferIndex = require( '@stdlib/ndarray/base/max-view-buffer-index' );\n*\n* var shape = [ 10, 10 ];\n* var strides = [ -10, -1 ];\n* var offset = 99;\n*\n* var idx = maxViewBufferIndex( shape, strides, offset );\n* // returns 99\n*\n* @example\n* var maxViewBufferIndex = require( '@stdlib/ndarray/base/max-view-buffer-index' );\n*\n* var shape = [ 10, 10 ];\n* var strides = [ 1, 10 ];\n* var offset = 0;\n*\n* var idx = maxViewBufferIndex( shape, strides, offset );\n* // returns 99\n*\n* @example\n* var maxViewBufferIndex = require( '@stdlib/ndarray/base/max-view-buffer-index' );\n*\n* var shape = [ 10, 10 ];\n* var strides = [ -1, -10 ];\n* var offset = 99;\n*\n* var idx = maxViewBufferIndex( shape, strides, offset );\n* // returns 99\n*/\n\n// MODULES //\n\nvar maxViewBufferIndex = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = maxViewBufferIndex;\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 broadcast = require( './../../../base/broadcast-array' );\nvar getShape = require( './../../../base/shape' );\n\n\n// MAIN //\n\n/**\n* Broadcasts an ndarray to a specified shape if and only if the specified shape differs from the provided ndarray's shape.\n*\n* ## Notes\n*\n* - If a provided ndarray has the same shape as the specified shape, the function returns the provided ndarray.\n* - If a provided ndarray has a different (broadcast compatible) shape than the specified shape, the function returns a new (base) ndarray view of the provided ndarray's data. The view is typically **not** contiguous. As more than one element of a returned view may refer to the same memory location, writing to the view may affect multiple elements. If you need to write to the returned array, copy the array before performing operations which may mutate elements.\n*\n* @param {ndarray} arr - input array\n* @param {NonNegativeIntegerArray} shape - desired 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 shape\n* @throws {Error} input array and desired shape must be broadcast compatible\n* @returns {ndarray} broadcasted array\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var shx = x.shape;\n* // returns [ 2, 2 ]\n*\n* var y = maybeBroadcastArray( x, [ 3, 2, 2 ] );\n* // returns \n*\n* var shy = y.shape;\n* // returns [ 3, 2, 2 ]\n*\n* var v = y.get( 0, 0, 0 );\n* // returns 1\n*\n* v = y.get( 0, 0, 1 );\n* // returns 2\n*\n* v = y.get( 1, 0, 0 );\n* // returns 1\n*\n* v = y.get( 1, 1, 0 );\n* // returns 3\n*\n* v = y.get( 2, 0, 0 );\n* // returns 1\n*\n* v = y.get( 2, 1, 1 );\n* // returns 4\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var y = maybeBroadcastArray( x, [ 3, 2 ] );\n* // throws \n*/\nfunction maybeBroadcastArray( arr, shape ) {\n\tvar sh;\n\tvar N;\n\tvar i;\n\n\tN = shape.length;\n\tsh = getShape( arr, false );\n\n\t// Check whether we need to broadcast the input array...\n\tif ( sh.length === N ) {\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\t// Check whether dimensions match...\n\t\t\tif ( sh[ i ] !== shape[ i ] ) {\n\t\t\t\t// We found a mismatched dimension; delegate to `broadcast` to ensure that the input array is broadcast compatible with the desired array shape...\n\t\t\t\treturn broadcast( arr, shape );\n\t\t\t}\n\t\t}\n\t\treturn arr;\n\t}\n\t// If we are provided an array having a different rank (i.e., number of dimensions) than the desired shape, assume we need to broadcast, delegating to `broadcast` to ensure that the input array is broadcast compatible with the desired array shape...\n\treturn broadcast( arr, shape );\n}\n\n\n// EXPORTS //\n\nmodule.exports = maybeBroadcastArray;\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* Broadcast an ndarray to a specified shape if and only if the specified shape differs from the provided ndarray's shape.\n*\n* @module @stdlib/ndarray/base/maybe-broadcast-array\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n* var maybeBroadcastArray = require( '@stdlib/ndarray/base/maybe-broadcast-array' );\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var shx = x.shape;\n* // returns [ 2, 2 ]\n*\n* var y = maybeBroadcastArray( x, [ 3, 2, 2 ] );\n* // returns \n*\n* var shy = y.shape;\n* // returns [ 3, 2, 2 ]\n*\n* var v = y.get( 0, 0, 0 );\n* // returns 1\n*\n* v = y.get( 0, 0, 1 );\n* // returns 2\n*\n* v = y.get( 1, 0, 0 );\n* // returns 1\n*\n* v = y.get( 1, 1, 0 );\n* // returns 3\n*\n* v = y.get( 2, 0, 0 );\n* // returns 1\n*\n* v = y.get( 2, 1, 1 );\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) 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 setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar setReadOnlyAccessor = require( '@stdlib/utils/define-nonenumerable-read-only-accessor' );\nvar dtypes2signatures = require( './../../../base/dtypes2signatures' );\n\n\n// MAIN //\n\n/**\n* Defines non-enumerable read-only properties which expose ndarray function meta data.\n*\n* @param {Object} meta - function meta data\n* @param {NonNegativeInteger} meta.nargs - total number of arguments\n* @param {NonNegativeInteger} meta.nin - total number of input arrays\n* @param {NonNegativeInteger} meta.nout - total number of output arrays\n* @param {ArrayLikeObject} dtypes - list of ndarray data types\n* @param {(Function|Object)} obj - object on which to define properties\n* @returns {(Function|Object)} object on which properties were defined\n*\n* @example\n* // Define ndarray function meta data:\n* var meta = {\n* 'nargs': 2,\n* 'nin': 1,\n* 'nout': 1\n* };\n*\n* // Define the list of ndarray data types:\n* var dtypes = [\n* 'float64', 'float64',\n* 'float32', 'float32',\n* 'generic', 'generic'\n* ];\n*\n* // Define an object on which to set the properties:\n* var obj = {};\n*\n* // Set the properties:\n* setProps( meta, dtypes, obj );\n*\n* @example\n* // Define ndarray function meta data:\n* var meta = {\n* 'nargs': 2,\n* 'nin': 1,\n* 'nout': 1\n* };\n*\n* // Define the list of ndarray data types:\n* var dtypes = [\n* 'float64', 'float64',\n* 'float32', 'float32',\n* 'generic', 'generic'\n* ];\n*\n* // Define a function on which to set the properties:\n* function abs( x, y ) {\n* // Implementation...\n* }\n*\n* // Set the properties:\n* setProps( meta, dtypes, abs );\n*/\nfunction setProps( meta, dtypes, obj ) {\n\t// Define the number of arguments:\n\tsetReadOnly( obj, 'nargs', meta.nargs );\n\n\t// Define the number of input arrays:\n\tsetReadOnly( obj, 'nin', meta.nin );\n\n\t// Define the number of output arrays:\n\tsetReadOnly( obj, 'nout', meta.nout );\n\n\t// Define a read-only accessor for listing a function's supported array data types:\n\tsetReadOnlyAccessor( obj, 'types', types );\n\n\treturn obj;\n\n\t/**\n\t* Returns a list of array type signatures.\n\t*\n\t* @private\n\t* @returns {StringArray} list of signatures\n\t*/\n\tfunction types() {\n\t\treturn dtypes2signatures( dtypes, meta.nin, meta.nout );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = setProps;\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* Define non-enumerable read-only properties which expose ndarray function meta data.\n*\n* @module @stdlib/ndarray/base/meta-data-props\n*\n* @example\n* var setProps = require( '@stdlib/ndarray/base/meta-data-props' );\n*\n* // Define ndarray function meta data:\n* var meta = {\n* 'nargs': 2,\n* 'nin': 1,\n* 'nout': 1\n* };\n*\n* // Define the list of ndarray data types:\n* var dtypes = [\n* 'float64', 'float64',\n* 'float32', 'float32',\n* 'generic', 'generic'\n* ];\n*\n* // Define an object/function on which to set the properties:\n* var obj = {};\n*\n* // Set the properties:\n* setProps( meta, dtypes, obj );\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/**\n* Computes the minimum linear index in an underlying data buffer accessible to an array view.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @returns {NonNegativeInteger} linear index\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ 10, 1 ];\n* var offset = 10;\n*\n* var idx = minViewBufferIndex( shape, strides, offset );\n* // returns 10\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ -10, -1 ];\n* var offset = 109;\n*\n* var idx = minViewBufferIndex( shape, strides, offset );\n* // returns 10\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ 1, 10 ];\n* var offset = 10;\n*\n* var idx = minViewBufferIndex( shape, strides, offset );\n* // returns 10\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ -1, -10 ];\n* var offset = 109;\n*\n* var idx = minViewBufferIndex( shape, strides, offset );\n* // returns 10\n*/\nfunction minViewBufferIndex( shape, strides, offset ) {\n\tvar ndims;\n\tvar idx;\n\tvar i;\n\n\tndims = shape.length;\n\tidx = offset;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tif ( shape[ i ] === 0 ) {\n\t\t\treturn offset;\n\t\t}\n\t\tif ( strides[ i ] < 0 ) {\n\t\t\tidx += strides[ i ] * ( shape[ i ] - 1 ); // decrements the index\n\t\t}\n\t}\n\treturn idx;\n}\n\n\n// EXPORTS //\n\nmodule.exports = minViewBufferIndex;\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* Compute the minimum linear index in an underlying data buffer accessible to an array view.\n*\n* @module @stdlib/ndarray/base/min-view-buffer-index\n*\n* @example\n* var minViewBufferIndex = require( '@stdlib/ndarray/base/min-view-buffer-index' );\n*\n* var shape = [ 10, 10 ];\n* var strides = [ 10, 1 ];\n* var offset = 10;\n*\n* var idx = minViewBufferIndex( shape, strides, offset );\n* // returns 10\n*\n* @example\n* var minViewBufferIndex = require( '@stdlib/ndarray/base/min-view-buffer-index' );\n*\n* var shape = [ 10, 10 ];\n* var strides = [ -10, -1 ];\n* var offset = 109;\n*\n* var idx = minViewBufferIndex( shape, strides, offset );\n* // returns 10\n*\n* @example\n* var minViewBufferIndex = require( '@stdlib/ndarray/base/min-view-buffer-index' );\n*\n* var shape = [ 10, 10 ];\n* var strides = [ 1, 10 ];\n* var offset = 10;\n*\n* var idx = minViewBufferIndex( shape, strides, offset );\n* // returns 10\n*\n* @example\n* var minViewBufferIndex = require( '@stdlib/ndarray/base/min-view-buffer-index' );\n*\n* var shape = [ 10, 10 ];\n* var strides = [ -1, -10 ];\n* var offset = 109;\n*\n* var idx = minViewBufferIndex( shape, strides, offset );\n* // returns 10\n*/\n\n// MODULES //\n\nvar minViewBufferIndex = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = minViewBufferIndex;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 ROW_MAJOR = 'row-major';\n\n\n// FUNCTIONS //\n\n/**\n* Returns the next Cartesian index (row-major).\n*\n* @private\n* @param {NonNegativeInteger} ndims - number of dimensions\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {NonNegativeIntegerArray} idx - current dimension indices\n* @param {NonNegativeInteger} dim - index of the dimension from which to start incrementing (inclusive)\n* @param {(Array|TypedArray|Object)} out - output array\n* @returns {(Array|TypedArray|Object)} output array\n*/\nfunction rowmajor( ndims, shape, idx, dim, out ) {\n\tvar i;\n\tvar j;\n\n\t// Set dimension indices which are skipped...\n\tfor ( i = ndims-1; i > dim; i-- ) {\n\t\tout[ i ] = idx[ i ];\n\t}\n\t// Search for the first dimension in which we don't have to \"carry the one\"...\n\tfor ( i = dim; i >= 0; i-- ) {\n\t\tj = ( idx[ i ] + 1 ) % shape[ i ];\n\t\tout[ i ] = j;\n\n\t\t// If the current index value is greater than zero, we can continue iterating within the current sub-array...\n\t\tif ( j > 0 ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\t// Set dimension indices which did not get updated...\n\tfor ( i -= 1; i >= 0; i-- ) {\n\t\tout[ i ] = idx[ i ];\n\t}\n\treturn out;\n}\n\n/**\n* Returns the next Cartesian index (column-major).\n*\n* @private\n* @param {NonNegativeInteger} ndims - number of dimensions\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {NonNegativeIntegerArray} idx - current dimension indices\n* @param {NonNegativeInteger} dim - index of the dimension from which to start incrementing (inclusive)\n* @param {(Array|TypedArray|Object)} out - output array\n* @returns {(Array|TypedArray|Object)} output array\n*/\nfunction columnmajor( ndims, shape, idx, dim, out ) {\n\tvar i;\n\tvar j;\n\n\t// Set dimension indices which are skipped...\n\tfor ( i = 0; i < dim; i++ ) {\n\t\tout[ i ] = idx[ i ];\n\t}\n\t// Search for the first dimension in which we don't have to \"carry the one\"...\n\tfor ( i = dim; i < ndims; i++ ) {\n\t\tj = ( idx[ i ] + 1 ) % shape[ i ];\n\t\tout[ i ] = j;\n\n\t\t// If the current index value is greater than zero, we can continue iterating within the current sub-array...\n\t\tif ( j > 0 ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\t// Set dimension indices which did not get updated...\n\tfor ( i += 1; i < ndims; i++ ) {\n\t\tout[ i ] = idx[ i ];\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Returns the next Cartesian index (i.e., set of subscripts/dimension indices) and assigns results to a provided output array.\n*\n* ## Notes\n*\n* - The function does not check whether the current index is the \"last\" index. Instead, if the function is provided dimension indices corresponding to the last element, the function will cycle back to the \"first\" index.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - index iteration order\n* @param {NonNegativeIntegerArray} idx - current dimension indices\n* @param {integer} dim - index of the dimension from which to start incrementing (inclusive)\n* @param {(Array|TypedArray|Object)} out - output array\n* @returns {(Array|TypedArray|Object|null)} output array (or null)\n*\n* @example\n* var shape = [ 12 ];\n* var idx = nextCartesianIndex( shape, 'row-major', [ 2 ], 0, [ 0 ] );\n* // returns [ 3 ]\n*\n* @example\n* var shape = [ 2, 2, 2 ];\n*\n* var out = [ 0, 0, 0 ];\n* var idx = nextCartesianIndex( shape, 'row-major', [ 0, 0, 1 ], -1, out );\n* // returns [ 0, 1, 0 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1, out );\n* // returns [ 0, 1, 1 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1, out );\n* // returns [ 1, 0, 0 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1, out );\n* // returns [ 1, 0, 1 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1, out );\n* // returns [ 1, 1, 0 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1, out );\n* // returns [ 1, 1, 1 ]\n*\n* @example\n* var shape = [];\n* var idx = nextCartesianIndex( shape, 'row-major', [], 0, [] );\n* // returns null\n*\n* @example\n* var shape = [ 12 ];\n* var idx = nextCartesianIndex( shape, 'row-major', [ 2 ], -10, [ 0 ] );\n* // returns null\n*\n* @example\n* var shape = [ 12 ];\n* var idx = nextCartesianIndex( shape, 'column-major', [ 2 ], 10, [ 0 ] );\n* // returns null\n*/\nfunction nextCartesianIndex( shape, order, idx, dim, out ) {\n\tvar ndims = shape.length;\n\tif ( ndims === 0 ) {\n\t\treturn null;\n\t}\n\tif ( dim < 0 ) {\n\t\tdim += ndims;\n\t\tif ( dim < 0 ) {\n\t\t\t// Out-of-bounds:\n\t\t\treturn null;\n\t\t}\n\t} else if ( dim >= ndims ) {\n\t\t// Out-of-bounds:\n\t\treturn null;\n\t}\n\tif ( order === ROW_MAJOR ) {\n\t\treturn rowmajor( ndims, shape, idx, dim, out );\n\t}\n\t// order === 'column-major'\n\treturn columnmajor( ndims, shape, idx, dim, out );\n}\n\n\n// EXPORTS //\n\nmodule.exports = nextCartesianIndex;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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( '@stdlib/array/base/zeros' );\nvar assign = require( './assign.js' );\n\n\n// MAIN //\n\n/**\n* Returns the next Cartesian index (i.e., set of subscripts/dimension indices).\n*\n* ## Notes\n*\n* - The function does not check whether the current index is the \"last\" index. Instead, if the function is provided dimension indices corresponding to the last element, the function will cycle back to the \"first\" index.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - index iteration order\n* @param {NonNegativeIntegerArray} idx - current dimension indices\n* @param {integer} dim - index of the dimension from which to start incrementing (inclusive)\n* @returns {(NonNegativeIntegerArray|null)} updated dimension indices\n*\n* @example\n* var shape = [ 12 ];\n* var idx = nextCartesianIndex( shape, 'row-major', [ 2 ], 0 );\n* // returns [ 3 ]\n*\n* @example\n* var shape = [ 2, 2, 2 ];\n*\n* var idx = nextCartesianIndex( shape, 'row-major', [ 0, 0, 1 ], -1 );\n* // returns [ 0, 1, 0 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1 );\n* // returns [ 0, 1, 1 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1 );\n* // returns [ 1, 0, 0 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1 );\n* // returns [ 1, 0, 1 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1 );\n* // returns [ 1, 1, 0 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1 );\n* // returns [ 1, 1, 1 ]\n*\n* @example\n* var shape = [];\n* var idx = nextCartesianIndex( shape, 'row-major', [], 0 );\n* // returns null\n*\n* @example\n* var shape = [ 12 ];\n* var idx = nextCartesianIndex( shape, 'row-major', [ 2 ], -10 );\n* // returns null\n*\n* @example\n* var shape = [ 12 ];\n* var idx = nextCartesianIndex( shape, 'column-major', [ 2 ], 10 );\n* // returns null\n*/\nfunction nextCartesianIndex( shape, order, idx, dim ) {\n\treturn assign( shape, order, idx, dim, zeros( shape.length ) );\n}\n\n\n// EXPORTS //\n\nmodule.exports = nextCartesianIndex;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 Cartesian index (i.e., set of subscripts/dimension indices).\n*\n* @module @stdlib/ndarray/base/next-cartesian-index\n*\n* @example\n* var nextCartesianIndex = require( '@stdlib/ndarray/base/next-cartesian-index' );\n*\n* var shape = [ 2, 2, 2 ];\n*\n* var idx = nextCartesianIndex( shape, 'row-major', [ 0, 0, 1 ], -1 );\n* // returns [ 0, 1, 0 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1 );\n* // returns [ 0, 1, 1 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1 );\n* // returns [ 1, 0, 0 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1 );\n* // returns [ 1, 0, 1 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1 );\n* // returns [ 1, 1, 0 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1 );\n* // returns [ 1, 1, 1 ]\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) 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// MAIN //\n\n/**\n* Returns the number of non-singleton dimensions.\n*\n* ## Notes\n*\n* - A singleton dimension is a dimension whose size is equal to `1`.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {NonNegativeInteger} number of non-singleton dimensions\n*\n* @example\n* var shape = [ 2, 2, 1 ];\n*\n* var n = nonsingletonDimensions( shape );\n* // returns 2\n*\n* @example\n* var shape = [ 1, 1, 1 ];\n*\n* var n = nonsingletonDimensions( shape );\n* // returns 0\n*/\nfunction nonsingletonDimensions( shape ) {\n\tvar cnt;\n\tvar i;\n\n\tcnt = 0;\n\tfor ( i = 0; i < shape.length; i++ ) {\n\t\tif ( shape[ i ] !== 1 ) {\n\t\t\tcnt += 1;\n\t\t}\n\t}\n\treturn cnt;\n}\n\n\n// EXPORTS //\n\nmodule.exports = nonsingletonDimensions;\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* Return the number of non-nonsingleton dimensions.\n*\n* @module @stdlib/ndarray/base/nonsingleton-dimensions\n*\n* @example\n* var nonsingletonDimensions = require( '@stdlib/ndarray/base/nonsingleton-dimensions' );\n*\n* var shape = [ 2, 2, 1 ];\n*\n* var n = nonsingletonDimensions( shape );\n* // returns 2\n*\n* @example\n* var nonsingletonDimensions = require( '@stdlib/ndarray/base/nonsingleton-dimensions' );\n*\n* var shape = [ 1, 1, 1 ];\n*\n* var n = nonsingletonDimensions( shape );\n* // returns 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* Simultaneously sorts two arrays based on the sort order of the first array using insertion sort.\n*\n* ## Notes\n*\n* - The first array is sorted in increasing order according to absolute value.\n* - The algorithm has space complexity `O(1)` and worst case time complexity `O(N^2)`.\n* - The algorithm is efficient for small arrays (typically `N <= 20``) and is particularly efficient for sorting arrays which are already substantially sorted.\n* - The algorithm is **stable**, meaning that the algorithm does **not** change the order of array elements which are equal or equivalent.\n* - The input arrays are sorted in-place (i.e., the input arrays are mutated).\n*\n* @private\n* @param {Array} x - first array\n* @param {Array} y - second array\n* @returns {void}\n*\n* @example\n* var x = [ -4, -2, 3, 1 ];\n* var y = [ 0, 1, 2, 3 ];\n*\n* sort2ins( x, y );\n*\n* console.log( x );\n* // => [ 1, -2, 3, -4 ]\n*\n* console.log( y );\n* // => [ 3, 1, 2, 0 ]\n*/\nfunction sort2ins( x, y ) {\n\tvar avx;\n\tvar aux;\n\tvar ix;\n\tvar iy;\n\tvar jx;\n\tvar jy;\n\tvar vx;\n\tvar vy;\n\tvar ux;\n\tvar i;\n\n\tix = 1;\n\tiy = 1;\n\n\t// Sort in increasing order...\n\tfor ( i = 1; i < x.length; i++ ) {\n\t\tvx = x[ ix ];\n\t\tavx = ( vx < 0 ) ? -vx : vx;\n\n\t\tvy = y[ iy ];\n\n\t\tjx = ix - 1;\n\t\tjy = iy - 1;\n\n\t\t// Shift all larger values to the left of the current element to the right...\n\t\twhile ( jx >= 0 ) {\n\t\t\tux = x[ jx ];\n\t\t\taux = ( ux < 0 ) ? -ux : ux;\n\t\t\tif ( aux <= avx ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tx[ jx+1 ] = ux;\n\t\t\ty[ jy+1 ] = y[ jy ];\n\t\t\tjx -= 1;\n\t\t\tjy -= 1;\n\t\t}\n\t\tx[ jx+1 ] = vx;\n\t\ty[ jy+1 ] = vy;\n\t\tix += 1;\n\t\tiy += 1;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = sort2ins;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 zeroTo = require( '@stdlib/array/base/zero-to' );\nvar copy = require( '@stdlib/array/base/copy-indexed' );\nvar take = require( '@stdlib/array/base/take-indexed' );\nvar sort2ins = require( './sort2ins.js' );\n\n\n// MAIN //\n\n/**\n* Reorders ndarray dimensions and associated strides for loop interchange.\n*\n* ## Notes\n*\n* - The returned object has the following properties:\n*\n* - **sh**: dimensions sorted in loop order.\n* - **sx**: ndarray strides sorted in loop order.\n*\n* @param {NonNegativeIntegerArray} sh - array dimensions\n* @param {IntegerArray} sx - array stride lengths\n* @returns {Object} loop interchange data\n*\n* @example\n* var sh = [ 2, 3, 4 ];\n*\n* var sx = [ 12, 4, 1 ]; // row-major\n*\n* var o = loopOrder( sh, sx );\n* // returns {...}\n*\n* var ssh = o.sh;\n* // returns [ 4, 3, 2 ]\n*\n* var ssx = o.sx;\n* // returns [ 1, 4, 12 ]\n*/\nfunction loopOrder( sh, sx ) {\n\tvar idx;\n\n\t// Initialize a loop interchange index array for generating a loop order permutation:\n\tidx = zeroTo( sh.length );\n\n\t// Sort the array strides in increasing order (of magnitude):\n\tsx = copy( sx );\n\tsort2ins( sx, idx );\n\n\t// Permute the shape based on the sorted array strides:\n\tsh = take( sh, idx );\n\n\treturn {\n\t\t'sh': sh,\n\t\t'sx': sx\n\t};\n}\n\n\n// EXPORTS //\n\nmodule.exports = loopOrder;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Reorder ndarray dimensions and associated strides for loop interchange.\n*\n* @module @stdlib/ndarray/base/nullary-loop-interchange-order\n*\n* @example\n* var nullaryLoopOrder = require( '@stdlib/ndarray/base/nullary-loop-interchange-order' );\n*\n* var sh = [ 2, 3, 4 ];\n*\n* var sx = [ 12, 4, 1 ]; // row-major\n*\n* var o = nullaryLoopOrder( sh, sx );\n* // returns {...}\n*\n* var ssh = o.sh;\n* // returns [ 4, 3, 2 ]\n*\n* var ssx = o.sx;\n* // returns [ 1, 4, 12 ]\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\nvar defaults = {\n\t// Define a default block size (in bytes):\n\t'BLOCK_SIZE_IN_BYTES': 64|0, // 64b is a common cache line size. How applicable the common cache line size is here is debatable, given that, depending on the associated stride(s), the innermost loop may not iterate over adjacent elements. The primary goal is to have a block size in which all data within a block can always fit in (L1) cache, regardless of cache size (i.e., cache-oblivious). For reference, a common L1 cache size is 32kB per core. For best performance, block sizes should be tuned based on system hardware; however, such tuning is not readily available to us here. Without obvious better alternatives, 64b has some theoretical (and practical) underpinning, and it should be good enough for most inputs, especially for ndarrays with near contiguity.\n\n\t// Define a default block size (in elements):\n\t'BLOCK_SIZE_IN_ELEMENTS': 8|0 // 64 bytes / 8 bytes per element (i.e., default element size is same as a double)\n};\n\n\n// EXPORTS //\n\nmodule.exports = defaults;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 bytesPerElement = require( './../../../base/bytes-per-element' );\nvar defaults = require( './defaults.js' );\n\n\n// MAIN //\n\n/**\n* Returns a loop block size for multi-dimensional array tiled loops.\n*\n* @param {string} dtypeX - array data type\n* @returns {integer} block size (in units of elements)\n*\n* @example\n* var bsize = nullaryBlockSize( 'float64' );\n* // returns \n*/\nfunction nullaryBlockSize( dtypeX ) {\n\tvar nbx = bytesPerElement( dtypeX );\n\tif ( nbx === null ) { // e.g., \"generic\" arrays\n\t\treturn defaults.BLOCK_SIZE_IN_ELEMENTS;\n\t}\n\treturn ( defaults.BLOCK_SIZE_IN_BYTES/nbx )|0; // asm type annotation\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullaryBlockSize;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Resolve a loop block size for multi-dimensional array tiled loops.\n*\n* @module @stdlib/ndarray/base/nullary-tiling-block-size\n*\n* @example\n* var nullaryBlockSize = require( '@stdlib/ndarray/base/nullary-tiling-block-size' );\n*\n* var bsize = nullaryBlockSize( 'float64' );\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 loopOrder = require( './../../../base/nullary-loop-interchange-order' );\nvar blockSize = require( './../../../base/nullary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\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* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* blockednullary2d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction blockednullary2d( x, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tset = x.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockednullary2d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/nullary-loop-interchange-order' );\nvar blockSize = require( './../../../base/nullary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\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* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* blockednullary3d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction blockednullary3d( x, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tset = x.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockednullary3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/nullary-loop-interchange-order' );\nvar blockSize = require( './../../../base/nullary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\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* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* blockednullary4d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction blockednullary4d( x, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\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 o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tset = x.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\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 = blockednullary4d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/nullary-loop-interchange-order' );\nvar blockSize = require( './../../../base/nullary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\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* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* blockednullary5d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction blockednullary5d( x, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\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 o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tset = x.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockednullary5d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/nullary-loop-interchange-order' );\nvar blockSize = require( './../../../base/nullary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\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* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* blockednullary6d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction blockednullary6d( x, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tset = x.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockednullary6d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/nullary-loop-interchange-order' );\nvar blockSize = require( './../../../base/nullary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* var Complex64Array = require( '@stdlib/array/complex64' );\n* var Complex64 = require( '@stdlib/complex/float32' );\n* var real = require( '@stdlib/complex/real' );\n* var imag = require( '@stdlib/complex/imag' );\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* blockednullary7d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = real( v );\n* // returns 10.0\n*\n* var im = imag( v );\n* // returns -10.0\n*/\nfunction blockednullary7d( x, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tset = x.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockednullary7d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/nullary-loop-interchange-order' );\nvar blockSize = require( './../../../base/nullary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\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* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* blockednullary8d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction blockednullary8d( x, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tset = x.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockednullary8d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/nullary-loop-interchange-order' );\nvar blockSize = require( './../../../base/nullary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\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* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* blockednullary9d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction blockednullary9d( x, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tset = x.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockednullary9d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/nullary-loop-interchange-order' );\nvar blockSize = require( './../../../base/nullary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\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* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* blockednullary10d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction blockednullary10d( x, fcn ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tset = x.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockednullary10d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 loopOrder = require( './../../../base/nullary-loop-interchange-order' );\nvar blockSize = require( './../../../base/nullary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* blockednullary2d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction blockednullary2d( x, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockednullary2d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/nullary-loop-interchange-order' );\nvar blockSize = require( './../../../base/nullary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* blockednullary3d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction blockednullary3d( x, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockednullary3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/nullary-loop-interchange-order' );\nvar blockSize = require( './../../../base/nullary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* blockednullary4d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction blockednullary4d( x, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\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 o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\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 = blockednullary4d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/nullary-loop-interchange-order' );\nvar blockSize = require( './../../../base/nullary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* blockednullary5d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction blockednullary5d( x, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\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 o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockednullary5d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/nullary-loop-interchange-order' );\nvar blockSize = require( './../../../base/nullary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* blockednullary6d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction blockednullary6d( x, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockednullary6d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/nullary-loop-interchange-order' );\nvar blockSize = require( './../../../base/nullary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* blockednullary7d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction blockednullary7d( x, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockednullary7d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/nullary-loop-interchange-order' );\nvar blockSize = require( './../../../base/nullary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* blockednullary8d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction blockednullary8d( x, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockednullary8d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/nullary-loop-interchange-order' );\nvar blockSize = require( './../../../base/nullary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* blockednullary9d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction blockednullary9d( x, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockednullary9d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/nullary-loop-interchange-order' );\nvar blockSize = require( './../../../base/nullary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* blockednullary10d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction blockednullary10d( x, fcn ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockednullary10d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 nullary function and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n* @returns {void}\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* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 4 );\n*\n* // Define the shape of the output array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullary0d( x, fcn );\n*\n* var v = x.data.get( 1 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullary0d( x, fcn ) {\n\tx.accessors[ 1 ]( x.data, x.offset, fcn() );\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary0d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n* @returns {void}\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* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullary1d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullary1d( x, fcn ) {\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tset = x.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tset( xbuf, ix, fcn() );\n\t\tix += dx0;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary1d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n* @returns {void}\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* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullary2d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullary2d( x, fcn ) {\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tset = x.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tset( xbuf, ix, fcn() );\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary2d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n* @returns {void}\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* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullary3d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullary3d( x, fcn ) {\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tset = x.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n* @returns {void}\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* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullary4d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullary4d( x, fcn ) {\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tset = x.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary4d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n* @returns {void}\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* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullary5d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullary5d( x, fcn ) {\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tset = x.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary5d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n* @returns {void}\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* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullary6d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullary6d( x, fcn ) {\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tset = x.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary6d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* var Complex64Array = require( '@stdlib/array/complex64' );\n* var Complex64 = require( '@stdlib/complex/float32' );\n* var real = require( '@stdlib/complex/real' );\n* var imag = require( '@stdlib/complex/imag' );\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullary7d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = real( v );\n* // returns 10.0\n*\n* var im = imag( v );\n* // returns -10.0\n*/\nfunction nullary7d( x, fcn ) {\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tset = x.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary7d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n* @returns {void}\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* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullary8d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullary8d( x, fcn ) {\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tset = x.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary8d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n* @returns {void}\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* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullary9d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullary9d( x, fcn ) {\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tset = x.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary9d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n* @returns {void}\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* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullary10d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullary10d( x, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tset = x.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary10d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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( './../../../base/numel' );\nvar vind2bind = require( './../../../base/vind2bind' );\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer\n* @param {Callback} fcn - nullary callback\n* @returns {void}\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* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullarynd( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullarynd( x, fcn ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar set;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the output ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Cache accessor:\n\tset = x.accessors[ 1 ];\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tset( xbuf, ix, fcn() );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullarynd;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 nullary function and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 2 );\n*\n* // Define the shape of the output array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary0d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0 ]\n*/\nfunction nullary0d( x, fcn ) {\n\tx.data[ x.offset ] = fcn();\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary0d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 nullary function and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary1d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 0.0, 10.0, 0.0, 10.0, 0.0, 10.0 ]\n*/\nfunction nullary1d( x, fcn ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments:\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\txbuf[ ix ] = fcn();\n\t\tix += dx0;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary1d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary2d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction nullary2d( x, fcn ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\txbuf[ ix ] = fcn();\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary2d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary3d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction nullary3d( x, fcn ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary4d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction nullary4d( x, fcn ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary4d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary5d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction nullary5d( x, fcn ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary5d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary6d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction nullary6d( x, fcn ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary6d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary7d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction nullary7d( x, fcn ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary7d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary8d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction nullary8d( x, fcn ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary8d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary9d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction nullary9d( x, fcn ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary9d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary10d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction nullary10d( x, fcn ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary10d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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( './../../../base/numel' );\nvar vind2bind = require( './../../../base/vind2bind' );\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullarynd( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction nullarynd( x, fcn ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the output ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\txbuf[ ix ] = fcn();\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullarynd;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 iterationOrder = require( './../../../base/iteration-order' );\nvar minmaxViewBufferIndex = require( './../../../base/minmax-view-buffer-index' );\nvar ndarray2object = require( './../../../base/ndarraylike2object' );\nvar blockedaccessornullary2d = require( './2d_blocked_accessors.js' );\nvar blockedaccessornullary3d = require( './3d_blocked_accessors.js' );\nvar blockedaccessornullary4d = require( './4d_blocked_accessors.js' );\nvar blockedaccessornullary5d = require( './5d_blocked_accessors.js' );\nvar blockedaccessornullary6d = require( './6d_blocked_accessors.js' );\nvar blockedaccessornullary7d = require( './7d_blocked_accessors.js' );\nvar blockedaccessornullary8d = require( './8d_blocked_accessors.js' );\nvar blockedaccessornullary9d = require( './9d_blocked_accessors.js' );\nvar blockedaccessornullary10d = require( './10d_blocked_accessors.js' );\nvar blockednullary2d = require( './2d_blocked.js' );\nvar blockednullary3d = require( './3d_blocked.js' );\nvar blockednullary4d = require( './4d_blocked.js' );\nvar blockednullary5d = require( './5d_blocked.js' );\nvar blockednullary6d = require( './6d_blocked.js' );\nvar blockednullary7d = require( './7d_blocked.js' );\nvar blockednullary8d = require( './8d_blocked.js' );\nvar blockednullary9d = require( './9d_blocked.js' );\nvar blockednullary10d = require( './10d_blocked.js' );\nvar accessornullary0d = require( './0d_accessors.js' );\nvar accessornullary1d = require( './1d_accessors.js' );\nvar accessornullary2d = require( './2d_accessors.js' );\nvar accessornullary3d = require( './3d_accessors.js' );\nvar accessornullary4d = require( './4d_accessors.js' );\nvar accessornullary5d = require( './5d_accessors.js' );\nvar accessornullary6d = require( './6d_accessors.js' );\nvar accessornullary7d = require( './7d_accessors.js' );\nvar accessornullary8d = require( './8d_accessors.js' );\nvar accessornullary9d = require( './9d_accessors.js' );\nvar accessornullary10d = require( './10d_accessors.js' );\nvar accessornullarynd = require( './nd_accessors.js' );\nvar nullary0d = require( './0d.js' );\nvar nullary1d = require( './1d.js' );\nvar nullary2d = require( './2d.js' );\nvar nullary3d = require( './3d.js' );\nvar nullary4d = require( './4d.js' );\nvar nullary5d = require( './5d.js' );\nvar nullary6d = require( './6d.js' );\nvar nullary7d = require( './7d.js' );\nvar nullary8d = require( './8d.js' );\nvar nullary9d = require( './9d.js' );\nvar nullary10d = require( './10d.js' );\nvar nullarynd = require( './nd.js' );\n\n\n// VARIABLES //\n\nvar NULLARY = [\n\tnullary0d,\n\tnullary1d,\n\tnullary2d,\n\tnullary3d,\n\tnullary4d,\n\tnullary5d,\n\tnullary6d,\n\tnullary7d,\n\tnullary8d,\n\tnullary9d,\n\tnullary10d\n];\nvar ACCESSOR_NULLARY = [\n\taccessornullary0d,\n\taccessornullary1d,\n\taccessornullary2d,\n\taccessornullary3d,\n\taccessornullary4d,\n\taccessornullary5d,\n\taccessornullary6d,\n\taccessornullary7d,\n\taccessornullary8d,\n\taccessornullary9d,\n\taccessornullary10d\n];\nvar BLOCKED_NULLARY = [\n\tblockednullary2d, // 0\n\tblockednullary3d,\n\tblockednullary4d,\n\tblockednullary5d,\n\tblockednullary6d,\n\tblockednullary7d,\n\tblockednullary8d,\n\tblockednullary9d,\n\tblockednullary10d // 8\n];\nvar BLOCKED_ACCESSOR_NULLARY = [\n\tblockedaccessornullary2d, // 0\n\tblockedaccessornullary3d,\n\tblockedaccessornullary4d,\n\tblockedaccessornullary5d,\n\tblockedaccessornullary6d,\n\tblockedaccessornullary7d,\n\tblockedaccessornullary8d,\n\tblockedaccessornullary9d,\n\tblockedaccessornullary10d // 8\n];\nvar MAX_DIMS = NULLARY.length - 1;\n\n\n// MAIN //\n\n/**\n* Applies a nullary function and assigns results to elements in an output ndarray.\n*\n* ## Notes\n*\n* - A provided ndarray should be an `object` with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one output array\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the ioutput ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary( [ x ], fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction nullary( arrays, fcn ) {\n\tvar ndims;\n\tvar xmmv;\n\tvar shx;\n\tvar iox;\n\tvar len;\n\tvar sx;\n\tvar ox;\n\tvar ns;\n\tvar x;\n\tvar d;\n\tvar i;\n\n\t// Unpack the ndarray and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\tshx = x.shape;\n\tndims = shx.length;\n\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_NULLARY[ ndims ]( x, fcn );\n\t\t}\n\t\treturn NULLARY[ ndims ]( x, fcn );\n\t}\n\t// Compute the number of elements and the number of singleton dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = shx[ i ];\n\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= d;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( d === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided an empty ndarray...\n\tif ( len === 0 ) {\n\t\treturn;\n\t}\n\t// Determine whether the ndarray is one-dimensional and thus readily translates to a one-dimensional strided array...\n\tif ( ndims === 1 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_NULLARY[ ndims ]( x, fcn );\n\t\t}\n\t\treturn NULLARY[ ndims ]( x, fcn );\n\t}\n\tsx = x.strides;\n\n\t// Determine whether the ndarray has only **one** non-singleton dimension (e.g., ndims=4, shape=[10,1,1,1]) so that we can treat an ndarray as being equivalent to a one-dimensional strided array...\n\tif ( ns === ndims-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( shx[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tx.shape = [ shx[i] ];\n\t\tx.strides = [ sx[i] ];\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_NULLARY[ 1 ]( x, fcn );\n\t\t}\n\t\treturn NULLARY[ 1 ]( x, fcn );\n\t}\n\tiox = iterationOrder( sx ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tif ( iox !== 0 ) {\n\t\t// Determine the minimum and maximum linear indices which are accessible by the array view:\n\t\txmmv = minmaxViewBufferIndex( shx, sx, x.offset );\n\n\t\t// Determine whether we can ignore shape (and strides) and treat the ndarray as a linear one-dimensional strided array...\n\t\tif ( len === ( xmmv[1]-xmmv[0]+1 ) ) {\n\t\t\t// Note: the above is equivalent to @stdlib/ndarray/base/assert/is-contiguous, but in-lined so we can retain computed values...\n\t\t\tif ( iox === 1 ) {\n\t\t\t\tox = xmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\tox = xmmv[ 1 ];\n\t\t\t}\n\t\t\tx.shape = [ len ];\n\t\t\tx.strides = [ iox ];\n\t\t\tx.offset = ox;\n\t\t\tif ( x.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_NULLARY[ 1 ]( x, fcn );\n\t\t\t}\n\t\t\treturn NULLARY[ 1 ]( x, fcn );\n\t\t}\n\t\t// The ndarray is non-contiguous, so we cannot directly use one-dimensional array functionality...\n\n\t\t// Determine whether we can use simple nested loops...\n\t\tif ( ndims <= MAX_DIMS ) {\n\t\t\t// So long as iteration always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\t\tif ( x.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_NULLARY[ ndims ]( x, fcn );\n\t\t\t}\n\t\t\treturn NULLARY[ ndims ]( x, fcn );\n\t\t}\n\t\t// Fall-through to blocked iteration...\n\t}\n\t// At this point, we're either dealing with a non-contiguous n-dimensional array or a high dimensional n-dimensional array, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_NULLARY[ ndims-2 ]( x, fcn );\n\t\t}\n\t\treturn BLOCKED_NULLARY[ ndims-2 ]( x, fcn );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol ) {\n\t\treturn accessornullarynd( x, fcn );\n\t}\n\tnullarynd( x, fcn );\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 nullary function and assign results to elements in an output ndarray.\n*\n* @module @stdlib/ndarray/base/nullary\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var nullary = require( '@stdlib/ndarray/base/nullary' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the ioutput ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary( [ x ], fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "[\n \"same\",\n \"promoted\",\n \"bool\",\n\t\"signed_integer\",\n \"unsigned_integer\",\n \"integer\",\n \"floating_point\",\n \"real_floating_point\",\n \"complex_floating_point\",\n \"real\",\n \"numeric\",\n \"default\"\n]\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 POLICIES = require( './policies.json' );\n\n\n// MAIN //\n\n/**\n* Returns a list of output ndarray data type policies.\n*\n* @returns {StringArray} list of ndarray data type policies\n*\n* @example\n* var list = policies();\n* // returns [...]\n*/\nfunction policies() {\n\treturn POLICIES.slice();\n}\n\n\n// EXPORTS //\n\nmodule.exports = policies;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 an object mapping supported data type policy strings to enumeration constants.\n*\n* ## Notes\n*\n* - Downstream consumers of this mapping should **not** rely on specific integer values (e.g., `SAME == 0`). Instead, the object should be used in an opaque manner.\n* - The main purpose of this function is JavaScript and C inter-operation of ndarray objects.\n*\n* @private\n* @returns {Object} object mapping supported dtype policies to enumeration constants\n*\n* @example\n* var table = enumeration();\n* // returns \n*/\nfunction enumeration() {\n\t// NOTE: the following should match the C `output_dtype_policies.h` enumeration!!!!\n\treturn {\n\t\t'same': 0,\n\t\t'promoted': 1,\n\t\t'bool': 2,\n\t\t'signed_integer': 3,\n\t\t'unsigned_integer': 4,\n\t\t'integer': 5,\n\t\t'floating_point': 6,\n\t\t'real_floating_point': 7,\n\t\t'complex_floating_point': 8,\n\t\t'real': 9,\n\t\t'numeric': 10,\n\t\t'default': 11\n\t};\n}\n\n\n// EXPORTS //\n\nmodule.exports = enumeration;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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-read-only-property' );\nvar objectKeys = require( '@stdlib/utils/keys' );\n\n\n// MAIN //\n\n/**\n* Copies all enumerable own properties from a source object to a target object as enumerable read-only properties.\n*\n* @private\n* @param {Object} target - target object\n* @param {Object} source - source object\n* @returns {Object} modified target object\n*\n* @example\n* var source = {\n* 'beep': 'boop'\n* };\n* var target = {};\n*\n* var out = assign( target, source );\n* // returns \n*\n* var bool = ( out === target );\n* // returns true\n*\n* var v = target.beep;\n* // returns 'boop'\n*/\nfunction assign( target, source ) {\n\tvar keys;\n\tvar k;\n\tvar i;\n\n\tkeys = objectKeys( source );\n\tfor ( i = 0; i < keys.length; i++ ) {\n\t\tk = keys[ i ];\n\t\tsetReadOnly( target, k, source[ k ] );\n\t}\n\treturn target;\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 output ndarray data type policies.\n*\n* @module @stdlib/ndarray/output-dtype-policies\n*\n* @example\n* var policies = require( '@stdlib/ndarray/output-dtype-policies' );\n*\n* var list = policies();\n* // returns [...]\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar enumeration = require( './enum.js' );\nvar assign = require( './assign.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'enum', enumeration );\nassign( main, enumeration() );\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 objectInverse = require( '@stdlib/utils/object-inverse' );\nvar enumeration = require( './../../../output-dtype-policies' ).enum;\n\n\n// VARIABLES //\n\nvar hash = objectInverse( enumeration(), {\n\t'duplicates': false\n});\n\n\n// MAIN //\n\n/**\n* Returns the policy string associated with an output ndarray data type policy enumeration constant.\n*\n* @param {integer} policy - policy enumeration constant\n* @returns {(string|null)} policy string or null\n*\n* @example\n* var str2enum = require( '@stdlib/ndarray/base/output-policy-str2enum' );\n*\n* var v = str2enum( 'same' );\n* // returns \n*\n* var policy = enum2str( v );\n* // returns 'same'\n*/\nfunction enum2str( policy ) {\n\tvar v = hash[ policy ];\n\treturn ( typeof v === 'string' ) ? v : null; // note: we include this guard to prevent walking the prototype chain\n}\n\n\n// EXPORTS //\n\nmodule.exports = enum2str;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 policy string associated with an output ndarray data type policy enumeration constant.\n*\n* @module @stdlib/ndarray/base/output-policy-enum2str\n*\n* @example\n* var str2enum = require( '@stdlib/ndarray/base/output-policy-str2enum' );\n* var enum2str = require( '@stdlib/ndarray/base/output-policy-enum2str' );\n*\n* var v = str2enum( 'same' );\n* // returns \n*\n* var policy = enum2str( v );\n* // returns 'same'\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 enumeration = require( './../../../output-dtype-policies' ).enum;\n\n\n// VARIABLES //\n\nvar ENUM = enumeration();\n\n\n// MAIN //\n\n/**\n* Returns the enumeration constant associated with an output ndarray data type policy string.\n*\n* ## Notes\n*\n* - Downstream consumers of this function should **not** rely on specific integer values (e.g., `SAME == 0`). Instead, the function should be used in an opaque manner.\n*\n* @param {string} policy - policy string\n* @returns {(integer|null)} integer value or null\n*\n* @example\n* var v = str2enum( 'same' );\n* // returns \n*/\nfunction str2enum( policy ) {\n\tvar v = ENUM[ policy ];\n\treturn ( typeof v === 'number' ) ? v : null; // note: we include this guard to prevent walking the prototype chain\n}\n\n\n// EXPORTS //\n\nmodule.exports = str2enum;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 enumeration constant associated with an output ndarray data type policy string.\n*\n* @module @stdlib/ndarray/base/output-policy-str2enum\n*\n* @example\n* var str2enum = require( '@stdlib/ndarray/base/output-policy-str2enum' );\n*\n* var v = str2enum( 'same' );\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 enum2str = require( './../../../base/output-policy-enum2str' );\nvar str2enum = require( './../../../base/output-policy-str2enum' );\n\n\n// MAIN //\n\n/**\n* Returns the enumeration constant associated with a supported ndarray data type policy value.\n*\n* ## Notes\n*\n* - Downstream consumers of this function should **not** rely on specific integer values (e.g., `SAME == 0`). Instead, the function should be used in an opaque manner.\n*\n* @param {*} policy - policy value\n* @returns {(integer|null)} enumeration constant or null\n*\n* @example\n* var v = resolve( 'same' );\n* // returns \n*/\nfunction resolve( policy ) {\n\tvar t = ( typeof policy );\n\tif ( t === 'number' ) {\n\t\treturn ( enum2str( policy ) ) ? policy : null;\n\t}\n\tif ( t === 'string' ) {\n\t\treturn str2enum( policy );\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = resolve;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 enumeration constant associated with a supported ndarray data type policy value.\n*\n* @module @stdlib/ndarray/base/output-policy-resolve-enum\n*\n* @example\n* var resolve = require( '@stdlib/ndarray/base/output-policy-resolve-enum' );\n*\n* var v = resolve( 'same' );\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 enum2str = require( './../../../base/output-policy-enum2str' );\nvar str2enum = require( './../../../base/output-policy-str2enum' );\n\n\n// MAIN //\n\n/**\n* Returns the policy string associated with a supported ndarray data type policy value.\n*\n* @param {*} policy - policy value\n* @returns {(string|null)} policy string or null\n*\n* @example\n* var str2enum = require( '@stdlib/ndarray/base/output-policy-str2enum' );\n*\n* var v = resolve( str2enum( 'same' ) );\n* // returns 'same'\n*/\nfunction resolve( policy ) {\n\tvar t = ( typeof policy );\n\tif ( t === 'string' ) {\n\t\treturn ( str2enum( policy ) === null ) ? null : policy;\n\t}\n\tif ( t === 'number' ) {\n\t\treturn enum2str( policy );\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = resolve;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 policy string associated with a supported ndarray data type policy value.\n*\n* @module @stdlib/ndarray/base/output-policy-resolve-str\n*\n* @example\n* var str2enum = require( '@stdlib/ndarray/base/output-policy-str2enum' );\n* var resolve = require( '@stdlib/ndarray/base/output-policy-resolve-str' );\n*\n* var v = resolve( str2enum( 'same' ) );\n* // returns 'same'\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 isReadOnly = require( './../../../base/assert/is-read-only' );\nvar getDType = require( './../../../base/dtype' );\nvar getShape = require( './../../../base/shape' );\nvar getStrides = require( './../../../base/strides' );\nvar getOffset = require( './../../../base/offset' );\nvar getOrder = require( './../../../base/order' );\nvar getData = require( './../../../base/data-buffer' );\n\n\n// MAIN //\n\n/**\n* Returns an array with a specified number of prepended singleton dimensions.\n*\n* @param {ndarray} x - input array\n* @param {NonNegativeInteger} n - number of singleton dimensions to prepend\n* @returns {ndarray} output array\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var shx = x.shape;\n* // returns [ 2, 2 ]\n*\n* var y = prependSingletonDimensions( x, 3 );\n* // returns \n*\n* var shy = y.shape;\n* // returns [ 1, 1, 1, 2, 2 ]\n*\n* var v = y.get( 0, 0, 0, 0, 0 );\n* // returns 1\n*\n* v = y.get( 0, 0, 0, 0, 1 );\n* // returns 2\n*\n* v = y.get( 0, 0, 0, 1, 0 );\n* // returns 3\n*\n* v = y.get( 0, 0, 0, 1, 1 );\n* // returns 4\n*/\nfunction prependSingletonDimensions( x, n ) { // eslint-disable-line id-length\n\tvar strides;\n\tvar shape;\n\tvar sh;\n\tvar st;\n\tvar N;\n\tvar i;\n\n\tsh = getShape( x, false );\n\tst = getStrides( x, false );\n\tN = sh.length;\n\n\tstrides = [];\n\tshape = [];\n\n\t// Prepend singleton dimensions...\n\tfor ( i = 0; i < n; i++ ) {\n\t\tshape.push( 1 );\n\t\tstrides.push( st[ 0 ] );\n\t}\n\t// Copy remaining dimensions...\n\tfor ( i = 0; i < N; i++ ) {\n\t\tshape.push( sh[ i ] );\n\t\tstrides.push( st[ i ] );\n\t}\n\tif ( isReadOnly( x ) ) {\n\t\t// If provided a read-only view, the returned array should also be read-only...\n\t\treturn new x.constructor( getDType( x ), getData( x ), shape, strides, getOffset( x ), getOrder( x ), { // eslint-disable-line max-len\n\t\t\t'readonly': true\n\t\t});\n\t}\n\treturn new x.constructor( getDType( x ), getData( x ), shape, strides, getOffset( x ), getOrder( x ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nmodule.exports = prependSingletonDimensions;\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* Prepend singleton dimensions.\n*\n* @module @stdlib/ndarray/base/prepend-singleton-dimensions\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n* var prependSingletonDimensions = require( '@stdlib/ndarray/base/prepend-singleton-dimensions' );\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var shx = x.shape;\n* // returns [ 2, 2 ]\n*\n* var y = prependSingletonDimensions( x, 3 );\n* // returns \n*\n* var shy = y.shape;\n* // returns [ 1, 1, 1, 2, 2 ]\n*\n* var v = y.get( 0, 0, 0, 0, 0 );\n* // returns 1\n*\n* v = y.get( 0, 0, 0, 0, 1 );\n* // returns 2\n*\n* v = y.get( 0, 0, 0, 1, 0 );\n* // returns 3\n*\n* v = y.get( 0, 0, 0, 1, 1 );\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) 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 isReadOnly = require( './../../../base/assert/is-read-only' );\nvar getDType = require( './../../../base/dtype' );\nvar getShape = require( './../../../base/shape' );\nvar getStrides = require( './../../../base/strides' );\nvar getOffset = require( './../../../base/offset' );\nvar getOrder = require( './../../../base/order' );\nvar getData = require( './../../../base/data-buffer' );\n\n\n// MAIN //\n\n/**\n* Returns an array without singleton dimensions.\n*\n* ## Notes\n*\n* - If a provided ndarray does not have any singleton dimensions, the function returns the provided ndarray unchanged.\n* - If a provided ndarray does have singleton dimensions, the function returns a new ndarray view.\n*\n* @param {ndarray} x - input array\n* @returns {ndarray} squeezed array\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ], {\n* 'ndmin': 5\n* });\n* // returns \n*\n* var shx = x.shape;\n* // returns [ 1, 1, 1, 2, 2 ]\n*\n* var y = removeSingletonDimensions( x );\n* // returns \n*\n* var shy = y.shape;\n* // returns [ 2, 2 ]\n*\n* var v = y.get( 0, 0 );\n* // returns 1\n*\n* v = y.get( 0, 1 );\n* // returns 2\n*\n* v = y.get( 1, 0 );\n* // returns 3\n*\n* v = y.get( 1, 1 );\n* // returns 4\n*/\nfunction removeSingletonDimensions( x ) {\n\tvar strides;\n\tvar shape;\n\tvar sh;\n\tvar st;\n\tvar N;\n\tvar i;\n\n\tsh = getShape( x, false );\n\tst = getStrides( x, false );\n\tN = sh.length;\n\n\tstrides = [];\n\tshape = [];\n\n\t// Check for singleton dimensions...\n\tfor ( i = 0; i < N; i++ ) {\n\t\tif ( sh[ i ] !== 1 ) {\n\t\t\tshape.push( sh[ i ] );\n\t\t\tstrides.push( st[ i ] );\n\t\t}\n\t}\n\tif ( shape.length === N ) {\n\t\t// We did not find any singleton dimensions...\n\t\treturn x;\n\t}\n\tif ( isReadOnly( x ) ) {\n\t\t// If provided a read-only view, the returned array should also be read-only...\n\t\treturn new x.constructor( getDType( x ), getData( x ), shape, strides, getOffset( x ), getOrder( x ), { // eslint-disable-line max-len\n\t\t\t'readonly': true\n\t\t});\n\t}\n\treturn new x.constructor( getDType( x ), getData( x ), shape, strides, getOffset( x ), getOrder( x ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nmodule.exports = removeSingletonDimensions;\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* Remove singleton dimensions.\n*\n* @module @stdlib/ndarray/base/remove-singleton-dimensions\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n* var removeSingletonDimensions = require( '@stdlib/ndarray/base/remove-singleton-dimensions' );\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ], {\n* 'ndmin': 5\n* });\n* // returns \n*\n* var shx = x.shape;\n* // returns [ 1, 1, 1, 2, 2 ]\n*\n* var y = removeSingletonDimensions( x );\n* // returns \n*\n* var shy = y.shape;\n* // returns [ 2, 2 ]\n*\n* var v = y.get( 0, 0 );\n* // returns 1\n*\n* v = y.get( 0, 1 );\n* // returns 2\n*\n* v = y.get( 1, 0 );\n* // returns 3\n*\n* v = y.get( 1, 1 );\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 args2multislice = require( '@stdlib/slice/base/args2multislice' );\nvar Slice = require( '@stdlib/slice/ctor' );\nvar filled = require( '@stdlib/array/base/filled' );\nvar slice = require( './../../../base/slice' );\nvar ndims = require( './../../../base/ndims' );\n\n\n// MAIN //\n\n/**\n* Returns a view of an input ndarray in which the order of elements along each dimension is reversed.\n*\n* @param {ndarray} x - input array\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @returns {ndarray} ndarray view\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = reverse( x, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 3, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 6.0, 5.0 ], [ 4.0, 3.0 ], [ 2.0, 1.0 ] ]\n*/\nfunction reverse( x, writable ) {\n\tvar args = filled( new Slice( null, null, -1 ), ndims( x ) );\n\treturn slice( x, args2multislice( args ), true, writable );\n}\n\n\n// EXPORTS //\n\nmodule.exports = reverse;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 view of an input ndarray in which the order of elements along each dimension is reversed.\n*\n* @module @stdlib/ndarray/base/reverse\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var reverse = require( '@stdlib/ndarray/base/reverse' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = reverse( x, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 3, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 6.0, 5.0 ], [ 4.0, 3.0 ], [ 2.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) 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 IS_LITTLE_ENDIAN = require( '@stdlib/assert/is-little-endian' );\nvar ArrayBuffer = require( '@stdlib/array/buffer' );\nvar DataView = require( '@stdlib/array/dataview' );\nvar BigInt = require( '@stdlib/bigint/ctor' );\nvar bytesPerElement = require( './../../../base/bytes-per-element' );\nvar dtypes = require( './../../../dtypes' ).enum;\nvar orders = require( './../../../orders' ).enum;\nvar modes = require( './../../../index-modes' ).enum;\nvar getDType = require( './../../../base/dtype' );\nvar getShape = require( './../../../base/shape' );\nvar getStrides = require( './../../../base/strides' );\nvar getOffset = require( './../../../base/offset' );\nvar getOrder = require( './../../../base/order' );\n\n\n// VARIABLES //\n\nvar DTYPES = dtypes();\nvar ORDERS = orders();\nvar MODES = modes();\n\n\n// MAIN //\n\n/**\n* Serializes ndarray meta data.\n*\n* ## Notes\n*\n* - This function takes into account ndarray-like objects which may support index modes.\n*\n* - Serialization is performed according to host byte order (endianness).\n*\n* - Meta data format:\n*\n* ```text\n* | endianness (1 byte) | (2 bytes) | (8 bytes) | (ndims*8 bytes) | (ndims*8 bytes) | (8 bytes) | (1 byte) | (1 byte) | (8 bytes) | (nsubmodes*1 bytes) | (4 bytes) |\n* ```\n*\n* which translates to the following `ArrayBuffer` layout:\n*\n* ```text\n* ArrayBuffer[\n* [int8],\n* [int16],\n* [int64],\n* [ndims*int64],\n* [ndims*int64],\n* [int64],\n* [int8],\n* [int8],\n* [int64],\n* [nsubmodes*int8],\n* [int32]\n* ]\n* ```\n*\n* where `strides` and `offset` are in units of bytes.\n*\n* - If the endianness is `1`, the byte order is little endian. If the endianness is `0`, the byte order is big endian.\n*\n* - Buffer length:\n*\n* ```text\n* 1 + 2 + 8 + (ndims*8) + (ndims*8) + 8 + 1 + 1 + 8 + (nsubmodes*1) + 4 = 33 + (ndims*16) + nsubmodes\n* ```\n*\n* For example, consider a three-dimensional ndarray with one subscript index mode (submode):\n*\n* ```text\n* 33 + (3*16) + 1 = 82 bytes\n* ```\n*\n* - Views:\n*\n* - endianness: `Int8Array( buf, 0, 1 )`\n* - dtype: `Int16Array( buf, 1, 1 )`\n* - ndims: `Int64Array( buf, 3, 1 )`\n* - shape: `Int64Array( buf, 11, ndims )`\n* - strides: `Int64Array( buf, 11+(ndims*8), ndims )`\n* - offset: `Int64Array( buf, 11+(ndims*16), 1 )`\n* - order: `Int8Array( buf, 19+(ndims*16), 1 )`\n* - mode: `Int8Array( buf, 20+(ndims*16), 1 )`\n* - nsubmodes: `Int64Array( buf, 21+(ndims*16), 1 )`\n* - submodes: `Int8Array( buf, 29+(ndims*16), nsubmodes )`\n* - flags: `Int32Array( buf, 29+(ndims*16)+nsubmodes, 1 )`\n*\n* @param {ndarrayLike} x - input array\n* @param {string} x.dtype - array data type\n* @param {NonNegativeIntegerArray} x.shape - array shape\n* @param {IntegerArray} x.strides - array strides\n* @param {NonNegativeInteger} x.offset - array index offset\n* @param {string} x.order - array order\n* @param {string} [x.mode='throw'] - array index mode\n* @param {StringArray} [x.submode=[x.mode]] - array subscript index modes\n* @param {Object} [x.flags={}] - array flags\n* @returns {DataView} serialized meta data\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n*\n* var dv = serialize( x );\n* // returns \n*/\nfunction serialize( x ) {\n\tvar nbytes;\n\tvar flgs;\n\tvar len;\n\tvar dt;\n\tvar sh;\n\tvar st;\n\tvar sm;\n\tvar v;\n\tvar m;\n\tvar o;\n\tvar s;\n\tvar N;\n\tvar M;\n\tvar i;\n\n\t// Check for interface which does the work of serializing to a DataView for us...\n\tif ( x.__array_meta_dataview__ ) { // eslint-disable-line no-underscore-dangle\n\t\treturn x.__array_meta_dataview__(); // eslint-disable-line no-underscore-dangle\n\t}\n\t// Extract meta data known to be attached to ndarray-like objects:\n\tdt = getDType( x );\n\tsh = getShape( x, false );\n\tst = getStrides( x, false );\n\tN = sh.length; // ndims\n\n\t// Extract meta data which may be available on ndarray-like objects (e.g., stdlib ndarray instances):\n\tm = x.mode || 'throw';\n\tsm = x.submode || [ m ];\n\tM = sm.length;\n\n\t// Determine number of bytes per element according to the ndarray dtype:\n\tnbytes = bytesPerElement( dt );\n\n\t// Compute the amount of memory we need to allocate for storing meta data:\n\tlen = 33 + (N*16) + M;\n\n\t// Allocate raw memory and create a view for interfacing with the allocated memory:\n\tv = new DataView( new ArrayBuffer( len ) );\n\n\t// Endianness: (byteoffset: 0; bytelength: 1)\n\to = 0;\n\tv.setInt8( o, ( IS_LITTLE_ENDIAN ) ? 1 : 0 );\n\n\t// Data type: (byteoffset: 1; bytelength: 2)\n\to += 1;\n\tv.setInt16( o, DTYPES[ dt ], IS_LITTLE_ENDIAN );\n\n\t// Number of dimensions: (byteoffset: 3; bytelength: 8)\n\to += 2;\n\tv.setBigInt64( o, BigInt( N ), IS_LITTLE_ENDIAN );\n\n\t// Shape and strides: (byteoffset: 11 and 11+(ndims*8), respectively; bytelength: ndims*8 for both shape and strides, and, thus, ndims*16 total)\n\ts = N * 8; // stride length between a dimension (shape[i]) and its associated stride\n\to += 8;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tv.setBigInt64( o, BigInt( sh[i] ), IS_LITTLE_ENDIAN );\n\t\tv.setBigInt64( o+s, BigInt( st[i]*nbytes ), IS_LITTLE_ENDIAN );\n\t\to += 8;\n\t}\n\t// Offset: (byteoffset: 11+(ndims*16); bytelength: 8)\n\to += s;\n\tv.setBigInt64( o, BigInt( getOffset( x )*nbytes ), IS_LITTLE_ENDIAN );\n\n\t// Order: (byteoffset: 19+(ndims*16); bytelength: 1)\n\to += 8;\n\tv.setInt8( o, ORDERS[ getOrder( x ) ] );\n\n\t// Index mode: (byteoffset: 20+(ndims*16); bytelength: 1)\n\to += 1;\n\tv.setInt8( o, MODES[ m ] );\n\n\t// Number of index submodes: (byteoffset: 21+(ndims*16); bytelength: 8)\n\to += 1;\n\tv.setBigInt64( o, BigInt( M ), IS_LITTLE_ENDIAN );\n\n\t// Submodes: (byteoffset: 29+(ndims*16); bytelength: nsubmodes*1)\n\to += 8;\n\tfor ( i = 0; i < M; i++ ) {\n\t\tv.setInt8( o, MODES[ sm[i] ] );\n\t\to += 1;\n\t}\n\t// Flags: (byteoffset: 29+(ndims*16)+nsubmodes; bytelength: 4)\n\tflgs = 0|0;\n\tif ( x.flags ) {\n\t\tflgs |= ( x.flags.READONLY ) ? 4 : 0; // 00000000 00000000 00000000 00000100\n\t}\n\tv.setInt32( o, flgs, IS_LITTLE_ENDIAN );\n\n\treturn v;\n}\n\n\n// EXPORTS //\n\nmodule.exports = serialize;\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 IS_LITTLE_ENDIAN = require( '@stdlib/assert/is-little-endian' );\nvar float64ToInt64Bytes = require( '@stdlib/number/float64/base/to-int64-bytes' ).assign;\nvar ArrayBuffer = require( '@stdlib/array/buffer' );\nvar Uint8Array = require( '@stdlib/array/uint8' );\nvar DataView = require( '@stdlib/array/dataview' );\nvar bytesPerElement = require( './../../../base/bytes-per-element' );\nvar dtypes = require( './../../../dtypes' ).enum;\nvar orders = require( './../../../orders' ).enum;\nvar modes = require( './../../../index-modes' ).enum;\nvar getDType = require( './../../../base/dtype' );\nvar getShape = require( './../../../base/shape' );\nvar getStrides = require( './../../../base/strides' );\nvar getOffset = require( './../../../base/offset' );\nvar getOrder = require( './../../../base/order' );\n\n\n// VARIABLES //\n\nvar DTYPES = dtypes();\nvar ORDERS = orders();\nvar MODES = modes();\n\n\n// MAIN //\n\n/**\n* Serializes ndarray meta data.\n*\n* ## Notes\n*\n* - This function takes into account ndarray-like objects which may support index modes.\n*\n* - Serialization is performed according to host byte order (endianness).\n*\n* - Meta data format:\n*\n* ```text\n* | endianness (1 byte) | (2 bytes) | (8 bytes) | (ndims*8 bytes) | (ndims*8 bytes) | (8 bytes) | (1 byte) | (1 byte) | (8 bytes) | (nsubmodes*1 bytes) | (4 bytes) |\n* ```\n*\n* which translates to the following `ArrayBuffer` layout:\n*\n* ```text\n* ArrayBuffer[\n* [int8],\n* [int16],\n* [int64],\n* [ndims*int64],\n* [ndims*int64],\n* [int64],\n* [int8],\n* [int8],\n* [int64],\n* [nsubmodes*int8],\n* [int32]\n* ]\n* ```\n*\n* where `strides` and `offset` are in units of bytes.\n*\n* - If the endianness is `1`, the byte order is little endian. If the endianness is `0`, the byte order is big endian.\n*\n* - Buffer length:\n*\n* ```text\n* 1 + 2 + 8 + (ndims*8) + (ndims*8) + 8 + 1 + 1 + 8 + (nsubmodes*1) = 33 + (ndims*16) + nsubmodes\n* ```\n*\n* For example, consider a three-dimensional ndarray with one subscript index mode (submode):\n*\n* ```text\n* 33 + (3*16) + 1 = 82 bytes\n* ```\n*\n* - Views:\n*\n* - endianness: `Int8Array( buf, 0, 1 )`\n* - dtype: `Int16Array( buf, 1, 1 )`\n* - ndims: `Int64Array( buf, 3, 1 )`\n* - shape: `Int64Array( buf, 11, ndims )`\n* - strides: `Int64Array( buf, 11+(ndims*8), ndims )`\n* - offset: `Int64Array( buf, 11+(ndims*16), 1 )`\n* - order: `Int8Array( buf, 19+(ndims*16), 1 )`\n* - mode: `Int8Array( buf, 20+(ndims*16), 1 )`\n* - nsubmodes: `Int64Array( buf, 21+(ndims*16), 1 )`\n* - submodes: `Int8Array( buf, 29+(ndims*16), nsubmodes )`\n* - flags: `Int32Array( buf, 29+(ndims*16)+nsubmodes, 1 )`\n*\n* @private\n* @param {ndarrayLike} x - input array\n* @param {string} x.dtype - array data type\n* @param {NonNegativeIntegerArray} x.shape - array shape\n* @param {IntegerArray} x.strides - array strides\n* @param {NonNegativeInteger} x.offset - array index offset\n* @param {string} x.order - array order\n* @param {string} [x.mode='throw'] - array index mode\n* @param {StringArray} [x.submode=[x.mode]] - array subscript index modes\n* @param {Object} [x.flags={}] - array flags\n* @returns {DataView} serialized meta data\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n*\n* var dv = serialize( x );\n* // returns \n*/\nfunction serialize( x ) {\n\tvar nbytes;\n\tvar bytes;\n\tvar flgs;\n\tvar len;\n\tvar dt;\n\tvar sh;\n\tvar st;\n\tvar sm;\n\tvar v;\n\tvar m;\n\tvar o;\n\tvar s;\n\tvar N;\n\tvar M;\n\tvar i;\n\n\t// Check for interface which does the work of serializing to a DataView for us...\n\tif ( x.__array_meta_dataview__ ) { // eslint-disable-line no-underscore-dangle\n\t\treturn x.__array_meta_dataview__(); // eslint-disable-line no-underscore-dangle\n\t}\n\t// Extract meta data known to be attached to ndarray-like objects:\n\tdt = getDType( x);\n\tsh = getShape( x, false );\n\tst = getStrides( x, false );\n\tN = sh.length; // ndims\n\n\t// Extract meta data which may be available on ndarray-like objects (e.g., stdlib ndarray instances):\n\tm = x.mode || 'throw';\n\tsm = x.submode || [ m ];\n\tM = sm.length;\n\n\t// Determine number of bytes per element according to the ndarray dtype:\n\tnbytes = bytesPerElement( dt );\n\n\t// Compute the amount of memory we need to allocate for storing meta data:\n\tlen = 33 + (N*16) + M;\n\n\t// Allocate raw memory and create a view for interfacing with the allocated memory:\n\tv = new DataView( new ArrayBuffer( len ) );\n\tbytes = new Uint8Array( v.buffer );\n\n\t// Endianness: (byteoffset: 0; bytelength: 1)\n\to = 0;\n\tv.setInt8( o, ( IS_LITTLE_ENDIAN ) ? 1 : 0 );\n\n\t// Data type: (byteoffset: 1; bytelength: 2)\n\to += 1;\n\tv.setInt16( o, DTYPES[ dt ], IS_LITTLE_ENDIAN );\n\n\t// Number of dimensions: (byteoffset: 3; bytelength: 8)\n\to += 2;\n\tfloat64ToInt64Bytes( N, bytes, 1, o );\n\n\t// Shape and strides: (byteoffset: 11 and 11+(ndims*8), respectively; bytelength: ndims*8 for both shape and strides, and, thus, ndims*16 total)\n\ts = N * 8; // stride length between a dimension (shape[i]) and its associated stride\n\to += 8;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tfloat64ToInt64Bytes( sh[i], bytes, 1, o );\n\t\tfloat64ToInt64Bytes( st[i]*nbytes, bytes, 1, o+s );\n\t\to += 8;\n\t}\n\t// Offset: (byteoffset: 11+(ndims*16); bytelength: 8)\n\to += s;\n\tfloat64ToInt64Bytes( getOffset( x )*nbytes, bytes, 1, o );\n\n\t// Order: (byteoffset: 19+(ndims*16); bytelength: 1)\n\to += 8;\n\tv.setInt8( o, ORDERS[ getOrder( x ) ] );\n\n\t// Index mode: (byteoffset: 20+(ndims*16); bytelength: 1)\n\to += 1;\n\tv.setInt8( o, MODES[ m ] );\n\n\t// Number of index submodes: (byteoffset: 21+(ndims*16); bytelength: 8)\n\to += 1;\n\tfloat64ToInt64Bytes( M, bytes, 1, o );\n\n\t// Submodes: (byteoffset: 29+(ndims*16); bytelength: nsubmodes*1)\n\to += 8;\n\tfor ( i = 0; i < M; i++ ) {\n\t\tv.setInt8( o, MODES[ sm[i] ] );\n\t\to += 1;\n\t}\n\t// Flags: (byteoffset: 29+(ndims*16)+nsubmodes; bytelength: 4)\n\tflgs = 0|0;\n\tif ( x.flags ) {\n\t\tflgs |= ( x.flags.READONLY ) ? 4 : 0; // 00000000 00000000 00000000 00000100\n\t}\n\tv.setInt32( o, flgs, IS_LITTLE_ENDIAN );\n\n\treturn v;\n}\n\n\n// EXPORTS //\n\nmodule.exports = serialize;\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* Serialize ndarray meta data.\n*\n* @module @stdlib/ndarray/base/serialize-meta-data\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n* var serialize = require( '@stdlib/ndarray/base/serialize-meta-data' );\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n*\n* var dv = serialize( x );\n* // returns \n*/\n\n// MODULES //\n\nvar hasBigIntSupport = require( '@stdlib/assert/has-bigint-support' );\nvar builtin = require( './main.js' );\nvar polyfill = require( './polyfill.js' );\n\n\n// MAIN //\n\nvar main;\nif ( hasBigIntSupport() ) {\n\tmain = builtin;\n} else {\n\tmain = polyfill;\n}\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// MAIN //\n\n/**\n* Returns the number of singleton dimensions.\n*\n* ## Notes\n*\n* - A singleton dimension is a dimension whose size is equal to `1`.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {NonNegativeInteger} number of singleton dimensions\n*\n* @example\n* var shape = [ 2, 1, 1 ];\n*\n* var n = singletonDimensions( shape );\n* // returns 2\n*\n* @example\n* var shape = [ 2, 2, 2 ];\n*\n* var n = singletonDimensions( shape );\n* // returns 0\n*/\nfunction singletonDimensions( shape ) {\n\tvar cnt;\n\tvar i;\n\n\tcnt = 0;\n\tfor ( i = 0; i < shape.length; i++ ) {\n\t\tif ( shape[ i ] === 1 ) {\n\t\t\tcnt += 1;\n\t\t}\n\t}\n\treturn cnt;\n}\n\n\n// EXPORTS //\n\nmodule.exports = singletonDimensions;\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* Return the number of singleton dimensions.\n*\n* @module @stdlib/ndarray/base/singleton-dimensions\n*\n* @example\n* var singletonDimensions = require( '@stdlib/ndarray/base/singleton-dimensions' );\n*\n* var shape = [ 2, 1, 1 ];\n*\n* var n = singletonDimensions( shape );\n* // returns 2\n*\n* @example\n* var singletonDimensions = require( '@stdlib/ndarray/base/singleton-dimensions' );\n*\n* var shape = [ 2, 2, 2 ];\n*\n* var n = singletonDimensions( shape );\n* // returns 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 isMostlySafeCast = require( './../../../base/assert/is-mostly-safe-data-type-cast' );\nvar broadcast = require( './../../../base/broadcast-array' );\nvar assign = require( './../../../base/assign' );\nvar slice = require( './../../../base/slice' );\nvar getDType = require( './../../../base/dtype' );\nvar getShape = require( './../../../base/shape' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Assigns element values from a broadcasted input ndarray to corresponding elements in an output ndarray view.\n*\n* @param {ndarray} x - input array\n* @param {ndarray} y - output array\n* @param {MultiSlice} s - multi-slice object for the output array\n* @param {boolean} strict - boolean indicating whether to enforce strict bounds checking\n* @throws {RangeError} number of slice dimensions must match the number of array dimensions\n* @throws {RangeError} slice exceeds array bounds\n* @throws {Error} input array must be broadcast compatible with an output array view\n* @throws {TypeError} input array cannot be safely cast to the output array data type\n* @returns {ndarray} output array\n*\n* @example\n* var Slice = require( '@stdlib/slice/ctor' );\n* var MultiSlice = require( '@stdlib/slice/multi' );\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndzeros = require( '@stdlib/ndarray/zeros' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n*\n* // Define an input array:\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* // Define an output array:\n* var y = ndzeros( [ 2, 3, 2 ], {\n* 'dtype': x.dtype\n* });\n*\n* // Create a slice:\n* var s0 = null;\n* var s1 = new Slice( null, null, -1 );\n* var s2 = new Slice( null, null, -1 );\n* var s = new MultiSlice( s0, s1, s2 );\n* // returns \n*\n* // Perform assignment:\n* var out = sliceAssign( x, y, s, false );\n* // returns \n*\n* var bool = ( out === y );\n* // returns true\n*\n* arr = ndarray2array( y );\n* // returns [ [ [ 6.0, 5.0 ], [ 4.0, 3.0 ], [ 2.0, 1.0 ] ], [ [ 6.0, 5.0 ], [ 4.0, 3.0 ], [ 2.0, 1.0 ] ] ]\n*/\nfunction sliceAssign( x, y, s, strict ) {\n\tvar view;\n\tvar xdt;\n\tvar ydt;\n\n\txdt = getDType( x );\n\tydt = getDType( y );\n\n\t// Safe casts are always allowed and allow same kind casts (i.e., downcasts) only when the output data type is floating-point...\n\tif ( !isMostlySafeCast( xdt, ydt ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Input array values cannot be safely cast to the output array data type. Data types: [%s, %s].', xdt, ydt ) );\n\t}\n\t// Resolve a writable output array view:\n\tview = slice( y, s, strict, true );\n\n\t// Broadcast the input array:\n\tx = broadcast( x, getShape( view, true ) );\n\n\t// Set elements from `x` in `y`:\n\tassign( [ x, view ] );\n\n\t// Return the original output array:\n\treturn y;\n}\n\n\n// EXPORTS //\n\nmodule.exports = sliceAssign;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Assign element values from a broadcasted input ndarray to corresponding elements in an output ndarray view.\n*\n* @module @stdlib/ndarray/base/slice-assign\n*\n* @example\n* var Slice = require( '@stdlib/slice/ctor' );\n* var MultiSlice = require( '@stdlib/slice/multi' );\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndzeros = require( '@stdlib/ndarray/zeros' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var sliceAssign = require( '@stdlib/ndarray/base/slice-assign' );\n*\n* // Define an input array:\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* // Define an output array:\n* var y = ndzeros( [ 2, 3, 2 ], {\n* 'dtype': x.dtype\n* });\n*\n* // Create a slice:\n* var s0 = null;\n* var s1 = new Slice( null, null, -1 );\n* var s2 = new Slice( null, null, -1 );\n* var s = new MultiSlice( s0, s1, s2 );\n* // returns \n*\n* // Perform assignment:\n* var out = sliceAssign( x, y, s, false );\n* // returns \n*\n* var bool = ( out === y );\n* // returns true\n*\n* arr = ndarray2array( y );\n* // returns [ [ [ 6.0, 5.0 ], [ 4.0, 3.0 ], [ 2.0, 1.0 ] ], [ [ 6.0, 5.0 ], [ 4.0, 3.0 ], [ 2.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 args2multislice = require( '@stdlib/slice/base/args2multislice' );\nvar ndims = require( './../../../base/ndims' );\nvar slice = require( './../../../base/slice' );\nvar normalizeIndex = require( './../../../base/normalize-index' );\nvar filled = require( '@stdlib/array/base/filled' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns a view of an input ndarray when sliced along a specified dimension.\n*\n* @param {ndarray} x - input array\n* @param {integer} dim - index of dimension to slice\n* @param {(Slice|integer)} s - slice object or an integer\n* @param {boolean} strict - boolean indicating whether to enforce strict bounds checking\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @throws {TypeError} first argument must be an ndarray having one or more dimensions\n* @throws {RangeError} dimension index exceeds the number of dimensions\n* @throws {RangeError} slice exceeds array bounds\n* @returns {ndarray} ndarray view\n*\n* @example\n* var Slice = require( '@stdlib/slice/ctor' );\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var s = new Slice( null, null, -1 );\n* // returns \n*\n* var y = sliceDimension( x, 0, s, false, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 3, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 5.0, 6.0 ], [ 3.0, 4.0 ], [ 1.0, 2.0 ] ]\n*/\nfunction sliceDimension( x, dim, s, strict, writable ) {\n\tvar args;\n\tvar N;\n\tvar d;\n\n\t// Retrieve array meta data:\n\tN = ndims( x );\n\n\t// Check whether we were provided a zero-dimensional array...\n\tif ( N === 0 ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray having one or more dimensions. Number of dimensions: %d.', N ) );\n\t}\n\t// Normalize the dimension index:\n\td = normalizeIndex( dim, N-1 );\n\tif ( d === -1 ) {\n\t\tthrow new RangeError( format( 'invalid argument. Dimension index exceeds the number of dimensions. Number of dimensions: %d. Value: `%d`.', N, dim ) );\n\t}\n\t// Define a list of MultiSlice constructor arguments:\n\targs = filled( null, N );\n\targs[ d ] = s;\n\n\t// Return a new array view:\n\treturn slice( x, args2multislice( args ), strict, writable );\n}\n\n\n// EXPORTS //\n\nmodule.exports = sliceDimension;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 view of an input ndarray when sliced along a specified dimension.\n*\n* @module @stdlib/ndarray/base/slice-dimension\n*\n* @example\n* var Slice = require( '@stdlib/slice/ctor' );\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var sliceDimension = require( '@stdlib/ndarray/base/slice-dimension' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var s = new Slice( null, null, -1 );\n* // returns \n*\n* var y = sliceDimension( x, 0, s, false, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 3, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 5.0, 6.0 ], [ 3.0, 4.0 ], [ 1.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 args2multislice = require( '@stdlib/slice/base/args2multislice' );\nvar Slice = require( '@stdlib/slice/ctor' );\nvar ndims = require( './../../../base/ndims' );\nvar slice = require( './../../../base/slice' );\nvar normalizeIndex = require( './../../../base/normalize-index' );\nvar filled = require( '@stdlib/array/base/filled' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns a shifted view of an input ndarray along a specified dimension.\n*\n* @param {ndarray} x - input array\n* @param {integer} dim - index of dimension to slice\n* @param {integer} start - starting index (inclusive)\n* @param {boolean} strict - boolean indicating whether to enforce strict bounds checking\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @throws {TypeError} first argument must be an ndarray having one or more dimensions\n* @throws {RangeError} dimension index exceeds the number of dimensions\n* @throws {RangeError} slice exceeds array bounds\n* @returns {ndarray} ndarray view\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = sliceDimensionFrom( x, 0, 1, false, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*/\nfunction sliceDimensionFrom( x, dim, start, strict, writable ) {\n\tvar args;\n\tvar N;\n\tvar d;\n\n\t// Retrieve array meta data:\n\tN = ndims( x );\n\n\t// Check whether we were provided a zero-dimensional array...\n\tif ( N === 0 ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray having one or more dimensions. Number of dimensions: %d.', N ) );\n\t}\n\t// Normalize the dimension index:\n\td = normalizeIndex( dim, N-1 );\n\tif ( d === -1 ) {\n\t\tthrow new RangeError( format( 'invalid argument. Dimension index exceeds the number of dimensions. Number of dimensions: %d. Value: `%d`.', N, dim ) );\n\t}\n\t// Define a list of slice arguments:\n\targs = filled( null, N );\n\targs[ d ] = new Slice( start, null );\n\n\t// Return a new array view:\n\treturn slice( x, args2multislice( args ), strict, writable );\n}\n\n\n// EXPORTS //\n\nmodule.exports = sliceDimensionFrom;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 shifted view of an input ndarray along a specified dimension.\n*\n* @module @stdlib/ndarray/base/slice-dimension-from\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var sliceDimensionFrom = require( '@stdlib/ndarray/base/slice-dimension-from' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = sliceDimensionFrom( x, 0, 1, false, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 3.0, 4.0 ], [ 5.0, 6.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 args2multislice = require( '@stdlib/slice/base/args2multislice' );\nvar Slice = require( '@stdlib/slice/ctor' );\nvar ndims = require( './../../../base/ndims' );\nvar slice = require( './../../../base/slice' );\nvar normalizeIndex = require( './../../../base/normalize-index' );\nvar filled = require( '@stdlib/array/base/filled' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns a truncated view of an input ndarray along a specified dimension.\n*\n* @param {ndarray} x - input array\n* @param {integer} dim - index of dimension to slice\n* @param {integer} stop - ending index (exclusive)\n* @param {boolean} strict - boolean indicating whether to enforce strict bounds checking\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @throws {TypeError} first argument must be an ndarray having one or more dimensions\n* @throws {RangeError} dimension index exceeds the number of dimensions\n* @throws {RangeError} slice exceeds array bounds\n* @returns {ndarray} ndarray view\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = sliceDimensionTo( x, 0, 2, false, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ]\n*/\nfunction sliceDimensionTo( x, dim, stop, strict, writable ) {\n\tvar args;\n\tvar N;\n\tvar d;\n\n\t// Retrieve array meta data:\n\tN = ndims( x );\n\n\t// Check whether we were provided a zero-dimensional array...\n\tif ( N === 0 ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray having one or more dimensions. Number of dimensions: %d.', N ) );\n\t}\n\t// Normalize the dimension index:\n\td = normalizeIndex( dim, N-1 );\n\tif ( d === -1 ) {\n\t\tthrow new RangeError( format( 'invalid argument. Dimension index exceeds the number of dimensions. Number of dimensions: %d. Value: `%d`.', N, dim ) );\n\t}\n\t// Define a list of slice arguments:\n\targs = filled( null, N );\n\targs[ d ] = new Slice( stop );\n\n\t// Return a new array view:\n\treturn slice( x, args2multislice( args ), strict, writable );\n}\n\n\n// EXPORTS //\n\nmodule.exports = sliceDimensionTo;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 truncated view of an input ndarray along a specified dimension.\n*\n* @module @stdlib/ndarray/base/slice-dimension-to\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var sliceDimensionTo = require( '@stdlib/ndarray/base/slice-dimension-to' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = sliceDimensionTo( x, 0, 2, false, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* arr = ndarray2array( 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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 args2multislice = require( '@stdlib/slice/base/args2multislice' );\nvar Slice = require( '@stdlib/slice/ctor' );\nvar slice = require( './../../../base/slice' );\n\n\n// MAIN //\n\n/**\n* Returns a shifted view of an input ndarray.\n*\n* @param {ndarray} x - input array\n* @param {Array} start - starting indices (inclusive)\n* @param {boolean} strict - boolean indicating whether to enforce strict bounds checking\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @throws {RangeError} number of slice dimensions must match the number of array dimensions\n* @throws {RangeError} slice exceeds array bounds\n* @returns {ndarray} ndarray view\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var s = [ 1, null ];\n* var y = sliceFrom( x, s, false, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*/\nfunction sliceFrom( x, start, strict, writable ) {\n\tvar args;\n\tvar s;\n\tvar i;\n\n\targs = [];\n\tfor ( i = 0; i < start.length; i++ ) {\n\t\ts = start[ i ];\n\t\tif ( isNumber( s ) && s !== 0 ) { // note: a start value equal to 0 is equivalent to `null` (i.e., including all elements along a dimension)\n\t\t\targs.push( new Slice( s, null ) );\n\t\t} else {\n\t\t\targs.push( null );\n\t\t}\n\t}\n\treturn slice( x, args2multislice( args ), strict, writable );\n}\n\n\n// EXPORTS //\n\nmodule.exports = sliceFrom;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 shifted view of an input ndarray.\n*\n* @module @stdlib/ndarray/base/slice-from\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var sliceFrom = require( '@stdlib/ndarray/base/slice-from' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var s = [ 1, null ];\n* var y = sliceFrom( x, s, false, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 3.0, 4.0 ], [ 5.0, 6.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 isNumber = require( '@stdlib/assert/is-number' ).isPrimitive;\nvar args2multislice = require( '@stdlib/slice/base/args2multislice' );\nvar Slice = require( '@stdlib/slice/ctor' );\nvar slice = require( './../../../base/slice' );\n\n\n// MAIN //\n\n/**\n* Returns a truncated view of an input ndarray.\n*\n* @param {ndarray} x - input array\n* @param {Array} stop - ending indices (exclusive)\n* @param {boolean} strict - boolean indicating whether to enforce strict bounds checking\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @throws {RangeError} number of slice dimensions must match the number of array dimensions\n* @throws {RangeError} slice exceeds array bounds\n* @returns {ndarray} ndarray view\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var s = [ 2, null ];\n* var y = sliceTo( x, s, false, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ]\n*/\nfunction sliceTo( x, stop, strict, writable ) {\n\tvar args;\n\tvar i;\n\n\targs = [];\n\tfor ( i = 0; i < stop.length; i++ ) {\n\t\tif ( isNumber( stop[ i ] ) ) {\n\t\t\targs.push( new Slice( stop[ i ] ) );\n\t\t} else {\n\t\t\targs.push( null );\n\t\t}\n\t}\n\treturn slice( x, args2multislice( args ), strict, writable );\n}\n\n\n// EXPORTS //\n\nmodule.exports = sliceTo;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 truncated view of an input ndarray.\n*\n* @module @stdlib/ndarray/base/slice-to\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var sliceTo = require( '@stdlib/ndarray/base/slice-to' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var s = [ 2, null ];\n* var y = sliceTo( x, s, false, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* arr = ndarray2array( 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) 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 format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Converts subscripts to a linear index.\n*\n* ## Notes\n*\n* - The function accepts the following \"modes\":\n*\n* - **throw**: throw an error when a subscript exceeds array dimensions.\n* - **normalize**: normalize negative subscripts and throw an error when a subscript exceeds array dimensions.\n* - **wrap**: wrap around subscripts exceeding array dimensions using modulo arithmetic.\n* - **clamp**: set subscripts exceeding array dimensions to either `0` (minimum index) or the maximum index along a particular dimension.\n*\n* - When provided fewer modes than dimensions, the function recycles modes using modulo arithmetic.\n*\n* - When provided a stride array containing negative strides, if an `offset` is greater than `0`, the function treats subscripts as mapping to a linear index in an underlying data buffer for the array, thus returning a linear index from the perspective of that buffer. If an `offset` is equal to `0`, the function treats subscripts as mapping to a linear index in an array view, thus returning a linear index from the perspective of that view.\n*\n* ```text\n* Dims: 2x2\n* Buffer: [ 1, 2, 3, 4 ]\n*\n* View = [ a00, a01,\n* a10, a11 ]\n*\n* Strides: 2,1\n* Offset: 0\n*\n* View = [ 1, 2,\n* 3, 4 ]\n*\n* Strides: 2,-1\n* Offset: 1\n*\n* View = [ 2, 1,\n* 4, 3 ]\n*\n* Strides: -2,1\n* Offset: 2\n*\n* View = [ 3, 4,\n* 1, 2 ]\n*\n* Strides: -2,-1\n* Offset: 3\n*\n* View = [ 4, 3,\n* 2, 1 ]\n* ```\n*\n* ```javascript\n* var shape = [ 2, 2 ];\n* var strides = [ -2, 1 ];\n* var offset = 2;\n* var mode = [ 'throw' ];\n*\n* // From the perspective of a view...\n* var idx = sub2ind( shape, strides, 0, 0, 0, mode );\n* // returns 0\n*\n* idx = sub2ind( shape, strides, 0, 0, 1, mode );\n* // returns 1\n*\n* idx = sub2ind( shape, strides, 0, 1, 0, mode );\n* // returns 2\n*\n* idx = sub2ind( shape, strides, 0, 1, 1, mode );\n* // returns 3\n*\n* // From the perspective of an underlying buffer...\n* idx = sub2ind( shape, strides, offset, 0, 0, mode );\n* // returns 2\n*\n* idx = sub2ind( shape, strides, offset, 0, 1, mode );\n* // returns 3\n*\n* idx = sub2ind( shape, strides, offset, 1, 0, mode );\n* // returns 0\n*\n* idx = sub2ind( shape, strides, offset, 1, 1, mode );\n* // returns 1\n* ```\n*\n* In short, from the perspective of a view, view data is always ordered.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - location of the first indexed value **based** on the stride array\n* @param {...integer} i - subscripts\n* @param {StringArray} mode - specifies how to handle subscripts which exceed array dimensions\n* @throws {RangeError} must provide subscripts which do not exceed array dimensions\n* @returns {NonNegativeInteger} linear index\n*\n* @example\n* var shape = [ 3, 3, 3 ];\n* var strides = [ 9, 3, 1 ];\n* var offset = 0;\n* var mode = [ 'throw' ]\n*\n* var idx = sub2ind( shape, strides, offset, 1, 2, 2, mode );\n* // returns [ 'throw' ]\n*/\nfunction sub2ind() {\n\tvar strides;\n\tvar offset;\n\tvar nmodes;\n\tvar shape;\n\tvar ndims;\n\tvar modes;\n\tvar mode;\n\tvar idx;\n\tvar m;\n\tvar s;\n\tvar j;\n\tvar i;\n\n\tshape = arguments[ 0 ];\n\tstrides = arguments[ 1 ];\n\toffset = arguments[ 2 ];\n\tndims = shape.length;\n\tmodes = arguments[ 3+ndims ]; // last argument\n\tnmodes = modes.length;\n\tidx = offset;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tm = shape[ i ];\n\t\tj = arguments[ i+3 ];\n\t\tmode = modes[ i%nmodes ];\n\t\tif ( mode === 'clamp' ) {\n\t\t\tif ( j < 0 ) {\n\t\t\t\tj = 0;\n\t\t\t} else if ( j >= m ) {\n\t\t\t\tj = m - 1;\n\t\t\t}\n\t\t} else if ( mode === 'wrap' ) {\n\t\t\tif ( j < 0 ) {\n\t\t\t\tj += m; // slight optimization to avoid modulo arithmetic when |j| <= m\n\t\t\t\tif ( j < 0 ) {\n\t\t\t\t\tj %= m;\n\t\t\t\t\tif ( j !== 0 ) {\n\t\t\t\t\t\tj += m;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if ( j >= m ) {\n\t\t\t\tj -= m; // slight optimization to avoid modulo arithmetic when m < j <= 2m\n\t\t\t\tif ( j >= m ) {\n\t\t\t\t\tj %= m;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif ( mode === 'normalize' && j < 0 ) {\n\t\t\t\tj += m;\n\t\t\t}\n\t\t\tif ( j < 0 || j >= m ) {\n\t\t\t\tthrow new RangeError( format( 'invalid argument. Subscripts must not exceed array dimensions. Subscript: `%u`. Value: `%d`.', i, j ) );\n\t\t\t}\n\t\t}\n\t\ts = strides[ i ];\n\n\t\t// Check if array view...\n\t\tif ( s < 0 && offset === 0 ) {\n\t\t\tidx -= j * s; // increments idx\n\t\t} else {\n\t\t\tidx += j * s; // may increment or decrement idx\n\t\t}\n\t}\n\treturn idx;\n}\n\n\n// EXPORTS //\n\nmodule.exports = sub2ind;\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 subscripts to a linear index.\n*\n* @module @stdlib/ndarray/base/sub2ind\n*\n* @example\n* var sub2ind = require( '@stdlib/ndarray/base/sub2ind' );\n*\n* var shape = [ 3, 3, 3 ];\n* var strides = [ 9, 3, 1 ];\n* var offset = 0;\n* var mode = [ 'throw' ];\n*\n* var idx = sub2ind( shape, strides, offset, 1, 2, 2, mode );\n* // returns 17\n*/\n\n// MODULES //\n\nvar sub2ind = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = sub2ind;\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* Recursively converts an ndarray to a generic array.\n*\n* @private\n* @param {Object} obj - array object\n* @param {(ArrayLikeObject|TypedArray|Buffer)} obj.data - data buffer\n* @param {Array} obj.accessors - element accessors\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - array strides\n* @param {NonNegativeInteger} offset - index offset\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @param {NonNegativeInteger} dim - dimension\n* @returns {(Array|Array)} output array\n*/\nfunction recurse( obj, shape, strides, offset, order, dim ) {\n\tvar stride;\n\tvar item;\n\tvar out;\n\tvar n;\n\tvar i;\n\n\tif ( dim >= shape.length ) {\n\t\treturn obj.accessors[ 0 ]( obj.data, offset );\n\t}\n\tout = [];\n\n\tn = shape[ dim ];\n\tstride = strides[ dim ];\n\n\tfor ( i = 0; i < n; i++ ) {\n\t\titem = recurse( obj, shape, strides, offset, order, dim+1 );\n\t\tout.push( item );\n\t\toffset += stride;\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = recurse;\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 arraylike2object = require( '@stdlib/array/base/arraylike2object' );\nvar recurse = require( './recurse.js' );\n\n\n// MAIN //\n\n/**\n* Converts an ndarray buffer to a generic array (which may include nested arrays).\n*\n* @param {(ArrayLikeObject|TypedArray|Buffer)} buffer - data buffer\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - array strides\n* @param {NonNegativeInteger} offset - index offset\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @returns {(EmptyArray|Array|Array)} array (which may include nested arrays)\n*\n* @example\n* var buffer = [ 1, 2, 3, 4 ];\n* var shape = [ 2, 2 ];\n* var order = 'row-major';\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var out = ndarray2array( buffer, shape, strides, offset, order );\n* // returns [ [ 1, 2 ], [ 3, 4 ] ]\n*/\nfunction ndarray2array( buffer, shape, strides, offset, order ) {\n\tvar i;\n\tif ( shape.length === 0 ) {\n\t\treturn [];\n\t}\n\tfor ( i = 0; i < shape.length; i++ ) {\n\t\tif ( shape[ i ] === 0 ) {\n\t\t\treturn [];\n\t\t}\n\t}\n\treturn recurse( arraylike2object( buffer ), shape, strides, offset, order, 0 ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nmodule.exports = ndarray2array;\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 ndarray buffer to a generic array (which may include nested arrays).\n*\n* @module @stdlib/ndarray/base/to-array\n*\n* @example\n* var ndarray2array = require( '@stdlib/ndarray/base/to-array' );\n*\n* var buffer = [ 1, 2, 3, 4 ];\n* var shape = [ 2, 2 ];\n* var order = 'row-major';\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var out = ndarray2array( buffer, shape, strides, offset, order );\n* // returns [ [ 1, 2 ], [ 3, 4 ] ]\n*/\n\n// MODULES //\n\nvar ndarray2array = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = ndarray2array;\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 strides2offset = require( './../../../base/strides2offset' );\nvar getDType = require( './../../../base/dtype' );\nvar getShape = require( './../../../base/shape' );\nvar getStrides = require( './../../../base/strides' );\nvar getOrder = require( './../../../base/order' );\nvar getData = require( './../../../base/data-buffer' );\n\n\n// MAIN //\n\n/**\n* Transpose a matrix (or a stack of matrices).\n*\n* @param {ndarray} x - input array\n* @throws {Error} must provide an array with two or more dimensions\n* @returns {ndarray} ndarray\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var x = array( [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 2, 3 ]\n*\n* var y = transpose( x );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 3, 2 ]\n*\n* var bool = ( x.data === y.data );\n* // returns true\n*\n* bool = ( x.get( 0, 1 ) === y.get( 1, 0 ) );\n* // returns true\n*/\nfunction transpose( x ) {\n\tvar tmp;\n\tvar sh;\n\tvar st;\n\tvar N;\n\n\tsh = getShape( x, true );\n\tN = sh.length;\n\tif ( N < 2 ) {\n\t\tthrow new Error( 'invalid argument. Must provide an ndarray having two or more dimensions.' );\n\t}\n\tst = getStrides( x, true );\n\n\ttmp = sh[ N-2 ];\n\tsh[ N-2 ] = sh[ N-1 ];\n\tsh[ N-1 ] = tmp;\n\n\ttmp = st[ N-2 ];\n\tst[ N-2 ] = st[ N-1 ];\n\tst[ N-1 ] = tmp;\n\n\t// FIXME: handling of offset seems incorrect. Should also handle READ-ONLY arrays.\n\treturn new x.constructor( getDType( x ), getData( x ), sh, st, strides2offset( sh, st ), getOrder( x ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nmodule.exports = transpose;\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* Transpose a matrix (or a stack of matrices).\n*\n* @module @stdlib/ndarray/base/transpose\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n* var transpose = require( '@stdlib/ndarray/base/transpose' );\n*\n* var x = array( [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 2, 3 ]\n*\n* var y = transpose( x );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 3, 2 ]\n*\n* var bool = ( x.data === y.data );\n* // returns true\n*\n* bool = ( x.get( 0, 1 ) === y.get( 1, 0 ) );\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) 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 loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a two-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary2d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary2d( x, y, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar ox1;\n\tvar oy1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t// Compute loop offset increments...\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary2d;\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/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a three-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary3d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary3d( x, y, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary3d;\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/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a four-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary4d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary4d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\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 ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\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 o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\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 = blockedunary4d;\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/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a five-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary5d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary5d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\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 ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\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 o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary5d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a six-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary6d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary6d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary6d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a seven-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary7d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary7d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary7d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in an eight-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary8d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary8d( x, y, fcn ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary8d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a nine-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary9d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary9d( x, y, fcn ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary9d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a ten-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary10d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary10d( x, y, fcn ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary10d;\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 loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a two-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary2d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0 ]\n*/\nfunction blockedunary2d( x, y, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar ox1;\n\tvar oy1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t// Compute loop offset increments...\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary2d;\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/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a three-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary3d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary3d( x, y, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary3d;\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/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a four-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary4d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary4d( x, y, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\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 ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\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 o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\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 = blockedunary4d;\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/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a five-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary5d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary5d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\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 ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\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 o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary5d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a six-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary6d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary6d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary6d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a seven-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary7d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary7d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary7d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in an eight-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary8d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary8d( x, y, fcn ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary8d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a nine-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary9d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary9d( x, y, fcn ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary9d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a ten-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary10d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary10d( x, y, fcn ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary10d;\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* Applies a unary callback to elements in a zero-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0 ] );\n* var ybuf = new Complex64Array( 2 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary0d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 30.0\n*\n* var im = imagf( v );\n* // returns 40.0\n*/\nfunction unary0d( x, y, fcn ) {\n\ty.accessors[ 1 ]( y.data, y.offset, fcn( x.accessors[ 0 ]( x.data, x.offset ) ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary0d;\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* Applies a unary callback to elements in a one-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary1d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary1d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dy0;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\tix += dx0;\n\t\tiy += dy0;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary1d;\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* Applies a unary callback to elements in a two-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary2d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary2d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary2d;\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* Applies a unary callback to elements in a three-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary3d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary3d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary3d;\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* Applies a unary callback to elements in a four-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary4d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary4d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\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 sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary4d;\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* Applies a unary callback to elements in a five-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary5d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary5d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\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 sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary5d;\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/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a six-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary6d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary6d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary6d;\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/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a seven-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary7d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary7d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary7d;\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/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in an eight-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary8d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary8d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary8d;\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/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a nine-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary9d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary9d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary9d;\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/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a ten-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary10d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary10d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary10d;\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 numel = require( './../../../base/numel' );\nvar vind2bind = require( './../../../base/vind2bind' );\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in an n-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unarynd( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unarynd( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar ordx;\n\tvar ordy;\n\tvar len;\n\tvar get;\n\tvar set;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray data buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unarynd;\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* Applies a unary callback to elements in a zero-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n* var ybuf = new Float64Array( 1 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary0d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0 ]\n*/\nfunction unary0d( x, y, fcn ) {\n\ty.data[ y.offset ] = fcn( x.data[ x.offset ] );\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary0d;\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* Applies a unary callback to elements in a one-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary1d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 40.0, 60.0, 80.0 ]\n*/\nfunction unary1d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dy0;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\tix += dx0;\n\t\tiy += dy0;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary1d;\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* Applies a unary callback to elements in a two-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary2d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0 ]\n*/\nfunction unary2d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary2d;\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* Applies a unary callback to elements in a three-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary3d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary3d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary3d;\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* Applies a unary callback to elements in a four-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary4d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary4d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\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 sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary4d;\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* Applies a unary callback to elements in a five-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary5d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary5d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\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 sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary5d;\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/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a six-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary6d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary6d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary6d;\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/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a seven-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary7d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary7d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary7d;\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/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in an eight-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary8d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary8d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary8d;\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/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a nine-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary9d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary9d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary9d;\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/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a ten-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary10d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary10d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary10d;\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 numel = require( './../../../base/numel' );\nvar vind2bind = require( './../../../base/vind2bind' );\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in an n-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unarynd( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0 ]\n*/\nfunction unarynd( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar ordx;\n\tvar ordy;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray data buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unarynd;\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 iterationOrder = require( './../../../base/iteration-order' );\nvar minmaxViewBufferIndex = require( './../../../base/minmax-view-buffer-index' );\nvar ndarray2object = require( './../../../base/ndarraylike2object' );\nvar blockedaccessorunary2d = require( './2d_blocked_accessors.js' );\nvar blockedaccessorunary3d = require( './3d_blocked_accessors.js' );\nvar blockedaccessorunary4d = require( './4d_blocked_accessors.js' );\nvar blockedaccessorunary5d = require( './5d_blocked_accessors.js' );\nvar blockedaccessorunary6d = require( './6d_blocked_accessors.js' );\nvar blockedaccessorunary7d = require( './7d_blocked_accessors.js' );\nvar blockedaccessorunary8d = require( './8d_blocked_accessors.js' );\nvar blockedaccessorunary9d = require( './9d_blocked_accessors.js' );\nvar blockedaccessorunary10d = require( './10d_blocked_accessors.js' );\nvar blockedunary2d = require( './2d_blocked.js' );\nvar blockedunary3d = require( './3d_blocked.js' );\nvar blockedunary4d = require( './4d_blocked.js' );\nvar blockedunary5d = require( './5d_blocked.js' );\nvar blockedunary6d = require( './6d_blocked.js' );\nvar blockedunary7d = require( './7d_blocked.js' );\nvar blockedunary8d = require( './8d_blocked.js' );\nvar blockedunary9d = require( './9d_blocked.js' );\nvar blockedunary10d = require( './10d_blocked.js' );\nvar accessorunary0d = require( './0d_accessors.js' );\nvar accessorunary1d = require( './1d_accessors.js' );\nvar accessorunary2d = require( './2d_accessors.js' );\nvar accessorunary3d = require( './3d_accessors.js' );\nvar accessorunary4d = require( './4d_accessors.js' );\nvar accessorunary5d = require( './5d_accessors.js' );\nvar accessorunary6d = require( './6d_accessors.js' );\nvar accessorunary7d = require( './7d_accessors.js' );\nvar accessorunary8d = require( './8d_accessors.js' );\nvar accessorunary9d = require( './9d_accessors.js' );\nvar accessorunary10d = require( './10d_accessors.js' );\nvar accessorunarynd = require( './nd_accessors.js' );\nvar unary0d = require( './0d.js' );\nvar unary1d = require( './1d.js' );\nvar unary2d = require( './2d.js' );\nvar unary3d = require( './3d.js' );\nvar unary4d = require( './4d.js' );\nvar unary5d = require( './5d.js' );\nvar unary6d = require( './6d.js' );\nvar unary7d = require( './7d.js' );\nvar unary8d = require( './8d.js' );\nvar unary9d = require( './9d.js' );\nvar unary10d = require( './10d.js' );\nvar unarynd = require( './nd.js' );\n\n\n// VARIABLES //\n\nvar UNARY = [\n\tunary0d,\n\tunary1d,\n\tunary2d,\n\tunary3d,\n\tunary4d,\n\tunary5d,\n\tunary6d,\n\tunary7d,\n\tunary8d,\n\tunary9d,\n\tunary10d\n];\nvar ACCESSOR_UNARY = [\n\taccessorunary0d,\n\taccessorunary1d,\n\taccessorunary2d,\n\taccessorunary3d,\n\taccessorunary4d,\n\taccessorunary5d,\n\taccessorunary6d,\n\taccessorunary7d,\n\taccessorunary8d,\n\taccessorunary9d,\n\taccessorunary10d\n];\nvar BLOCKED_UNARY = [\n\tblockedunary2d, // 0\n\tblockedunary3d,\n\tblockedunary4d,\n\tblockedunary5d,\n\tblockedunary6d,\n\tblockedunary7d,\n\tblockedunary8d,\n\tblockedunary9d,\n\tblockedunary10d // 8\n];\nvar BLOCKED_ACCESSOR_UNARY = [\n\tblockedaccessorunary2d, // 0\n\tblockedaccessorunary3d,\n\tblockedaccessorunary4d,\n\tblockedaccessorunary5d,\n\tblockedaccessorunary6d,\n\tblockedaccessorunary7d,\n\tblockedaccessorunary8d,\n\tblockedaccessorunary9d,\n\tblockedaccessorunary10d // 8\n];\nvar MAX_DIMS = UNARY.length - 1;\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in an input ndarray and assigns results to elements in an output ndarray.\n*\n* ## Notes\n*\n* - Each provided ndarray should be an `object` with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @param {Callback} fcn - unary callback\n* @throws {Error} arrays must have the same number of dimensions\n* @throws {Error} arrays must have the same shape\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary( [ x, y ], scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary( arrays, fcn ) {\n\tvar ndims;\n\tvar xmmv;\n\tvar ymmv;\n\tvar shx;\n\tvar shy;\n\tvar iox;\n\tvar ioy;\n\tvar len;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ns;\n\tvar x;\n\tvar y;\n\tvar d;\n\tvar i;\n\n\t// Unpack the ndarrays and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\ty = ndarray2object( arrays[ 1 ] );\n\n\t// Verify that the input and output arrays have the same number of dimensions...\n\tshx = x.shape;\n\tshy = y.shape;\n\tndims = shx.length;\n\tif ( ndims !== shy.length ) {\n\t\tthrow new Error( 'invalid arguments. Arrays must have the same number of dimensions (i.e., same rank). ndims(x) == '+ndims+'. ndims(y) == '+shy.length+'.' );\n\t}\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ ndims ]( x, y, fcn );\n\t\t}\n\t\treturn UNARY[ ndims ]( x, y, fcn );\n\t}\n\t// Verify that the input and output arrays have the same dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = shx[ i ];\n\t\tif ( d !== shy[ i ] ) {\n\t\t\tthrow new Error( 'invalid arguments. Arrays must have the same shape.' );\n\t\t}\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= d;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( d === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided empty ndarrays...\n\tif ( len === 0 ) {\n\t\treturn;\n\t}\n\t// Determine whether the ndarrays are one-dimensional and thus readily translate to one-dimensional strided arrays...\n\tif ( ndims === 1 ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ ndims ]( x, y, fcn );\n\t\t}\n\t\treturn UNARY[ ndims ]( x, y, fcn );\n\t}\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Determine whether the ndarray has only **one** non-singleton dimension (e.g., ndims=4, shape=[10,1,1,1]) so that we can treat the ndarrays as being equivalent to one-dimensional strided arrays...\n\tif ( ns === ndims-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( shx[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tx.shape = [ shx[i] ];\n\t\ty.shape = x.shape;\n\t\tx.strides = [ sx[i] ];\n\t\ty.strides = [ sy[i] ];\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ 1 ]( x, y, fcn );\n\t\t}\n\t\treturn UNARY[ 1 ]( x, y, fcn );\n\t}\n\tiox = iterationOrder( sx ); // +/-1\n\tioy = iterationOrder( sy ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tif ( iox !== 0 && ioy !== 0 && x.order === y.order ) {\n\t\t// Determine the minimum and maximum linear indices which are accessible by the array views:\n\t\txmmv = minmaxViewBufferIndex( shx, sx, x.offset );\n\t\tymmv = minmaxViewBufferIndex( shy, sy, y.offset );\n\n\t\t// Determine whether we can ignore shape (and strides) and treat the ndarrays as linear one-dimensional strided arrays...\n\t\tif ( len === ( xmmv[1]-xmmv[0]+1 ) && len === ( ymmv[1]-ymmv[0]+1 ) ) {\n\t\t\t// Note: the above is equivalent to @stdlib/ndarray/base/assert/is-contiguous, but in-lined so we can retain computed values...\n\t\t\tif ( iox === 1 ) {\n\t\t\t\tox = xmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\tox = xmmv[ 1 ];\n\t\t\t}\n\t\t\tif ( ioy === 1 ) {\n\t\t\t\toy = ymmv[ 0 ];\n\t\t\t} else {\n\t\t\t\toy = ymmv[ 1 ];\n\t\t\t}\n\t\t\tx.shape = [ len ];\n\t\t\ty.shape = x.shape;\n\t\t\tx.strides = [ iox ];\n\t\t\ty.strides = [ ioy ];\n\t\t\tx.offset = ox;\n\t\t\ty.offset = oy;\n\t\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_UNARY[ 1 ]( x, y, fcn );\n\t\t\t}\n\t\t\treturn UNARY[ 1 ]( x, y, fcn );\n\t\t}\n\t\t// At least one ndarray is non-contiguous, so we cannot directly use one-dimensional array functionality...\n\n\t\t// Determine whether we can use simple nested loops...\n\t\tif ( ndims <= MAX_DIMS ) {\n\t\t\t// So long as iteration for each respective array always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_UNARY[ ndims ]( x, y, fcn );\n\t\t\t}\n\t\t\treturn UNARY[ ndims ]( x, y, fcn );\n\t\t}\n\t\t// Fall-through to blocked iteration...\n\t}\n\t// At this point, we're either dealing with non-contiguous n-dimensional arrays, high dimensional n-dimensional arrays, and/or arrays having differing memory layouts, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_UNARY[ ndims-2 ]( x, y, fcn );\n\t\t}\n\t\treturn BLOCKED_UNARY[ ndims-2 ]( x, y, fcn );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\treturn accessorunarynd( x, y, fcn );\n\t}\n\tunarynd( x, y, fcn );\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary;\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* Apply a unary callback to elements in an input ndarray and assign results to elements in an output ndarray.\n*\n* @module @stdlib/ndarray/base/unary\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var unary = require( '@stdlib/ndarray/base/unary' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary( [ x, y ], scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.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/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a two-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary2d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary2d( x, y, fcn, clbk, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar ox1;\n\tvar oy1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t// Compute loop offset increments...\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t\ti += 1;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary2d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a three-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary3d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary3d( x, y, fcn, clbk, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary3d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a four-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary4d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary4d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\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 ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\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 o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\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 = blockedunary4d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a five-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary5d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary5d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\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 ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\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 o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary5d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a six-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary6d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary6d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary6d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a seven-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\n* var Complex64Array = require( '@stdlib/array/complex64' );\n* var Complex64 = require( '@stdlib/complex/float32' );\n* var real = require( '@stdlib/complex/real' );\n* var imag = require( '@stdlib/complex/imag' );\n*\n* function scale( z ) {\n* return new Complex64( real(z)*10.0, imag(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary7d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = real( v );\n* // returns 10.0\n*\n* var im = imag( v );\n* // returns 20.0\n*/\nfunction blockedunary7d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary7d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from an eight-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary8d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary8d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary8d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a nine-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary9d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary9d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary9d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a ten-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary10d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary10d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary10d;\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/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a two-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary2d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0 ]\n*/\nfunction blockedunary2d( x, y, fcn, clbk, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar ox1;\n\tvar oy1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t// Compute loop offset increments...\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t\ti += 1;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary2d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a three-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary3d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction blockedunary3d( x, y, fcn, clbk, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary3d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a four-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary4d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction blockedunary4d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\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 ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\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 o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\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 = blockedunary4d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a five-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary5d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction blockedunary5d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\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 ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\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 o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary5d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a six-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary6d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction blockedunary6d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary6d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a seven-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary7d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction blockedunary7d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary7d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from an eight-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary8d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction blockedunary8d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary8d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a nine-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary9d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction blockedunary9d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary9d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a ten-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary10d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction blockedunary10d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary10d;\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* Applies a unary function to each element retrieved from a zero-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0 ] );\n* var ybuf = new Complex64Array( 2 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary0d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 30.0\n*\n* var im = imagf( v );\n* // returns 40.0\n*/\nfunction unary0d( x, y, fcn, clbk, thisArg ) {\n\tvar ox = x.offset;\n\tvar oy = y.offset;\n\tvar v = clbk.call( thisArg, x.accessors[ 0 ]( x.data, ox ), 0, [ ox, oy ], [ x, y ] ); // eslint-disable-line max-len\n\tif ( v !== void 0 ) {\n\t\ty.accessors[ 1 ]( y.data, oy, fcn( v ) );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary0d;\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* Applies a unary function to each element retrieved from a one-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary1d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary1d( x, y, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dy0;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\tif ( v !== void 0 ) {\n\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t}\n\t\tix += dx0;\n\t\tiy += dy0;\n\t\ti += 1;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary1d;\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* Applies a unary function to each element retrieved from a two-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary2d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary2d( x, y, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\tif ( v !== void 0 ) {\n\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t}\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t\ti += 1;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary2d;\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/* eslint-disable max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a three-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary3d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary3d( x, y, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t\ti += 1;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary3d;\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/* eslint-disable max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a four-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary4d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary4d( x, y, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\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 sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t\ti += 1;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary4d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a five-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary5d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary5d( x, y, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\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 sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\ti += 1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary5d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a six-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary6d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary6d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary6d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a seven-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\n* var Complex64Array = require( '@stdlib/array/complex64' );\n* var Complex64 = require( '@stdlib/complex/float32' );\n* var real = require( '@stdlib/complex/real' );\n* var imag = require( '@stdlib/complex/imag' );\n*\n* function scale( z ) {\n* return new Complex64( real(z)*10.0, imag(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary7d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = real( v );\n* // returns 10.0\n*\n* var im = imag( v );\n* // returns 20.0\n*/\nfunction unary7d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary7d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from an eight-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary8d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary8d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary8d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a nine-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary9d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary9d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary9d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a ten-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary10d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary10d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary10d;\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 numel = require( './../../../base/numel' );\nvar vind2bind = require( './../../../base/vind2bind' );\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from an n-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unarynd( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unarynd( x, y, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar ordx;\n\tvar ordy;\n\tvar len;\n\tvar get;\n\tvar set;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar v;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray data buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\tif ( v !== void 0 ) {\n\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unarynd;\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* Applies a unary function to each element retrieved from a zero-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n* var ybuf = new Float64Array( 1 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary0d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0 ]\n*/\nfunction unary0d( x, y, fcn, clbk, thisArg ) {\n\tvar ox = x.offset;\n\tvar oy = y.offset;\n\tvar v = clbk.call( thisArg, x.data[ ox ], 0, [ ox, oy ], [ x, y ] );\n\tif ( v !== void 0 ) {\n\t\ty.data[ oy ] = fcn( v );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary0d;\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* Applies a unary function to each element retrieved from a one-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary1d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40, 80, 120, 160 ]\n*/\nfunction unary1d( x, y, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dy0;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\tif ( v !== void 0 ) {\n\t\t\tybuf[ iy ] = fcn( v );\n\t\t}\n\t\tix += dx0;\n\t\tiy += dy0;\n\t\ti += 1;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary1d;\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* Applies a unary function to each element retrieved from a two-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary2d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0 ]\n*/\nfunction unary2d( x, y, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\tif ( v !== void 0 ) {\n\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t}\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t\ti += 1;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary2d;\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* Applies a unary function to each element retrieved from a three-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary3d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction unary3d( x, y, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t\ti += 1;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary3d;\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/* eslint-disable max-len */\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a four-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary4d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction unary4d( x, y, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\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 sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t\ti += 1;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary4d;\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/* eslint-disable max-depth, max-len */\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a five-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary5d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction unary5d( x, y, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\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 sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\ti += 1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary5d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a six-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary6d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction unary6d( x, y, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary6d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a seven-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary7d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction unary7d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary7d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from an eight-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary8d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction unary8d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary8d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a nine-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary9d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction unary9d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary9d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a ten-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary10d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction unary10d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary10d;\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 numel = require( './../../../base/numel' );\nvar vind2bind = require( './../../../base/vind2bind' );\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from an n-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unarynd( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0 ]\n*/\nfunction unarynd( x, y, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar ordx;\n\tvar ordy;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar v;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray data buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\tif ( v !== void 0 ) {\n\t\t\tybuf[ iy ] = fcn( v );\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unarynd;\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 iterationOrder = require( './../../../base/iteration-order' );\nvar minmaxViewBufferIndex = require( './../../../base/minmax-view-buffer-index' );\nvar ndarray2object = require( './../../../base/ndarraylike2object' );\nvar blockedaccessorunary2d = require( './2d_blocked_accessors.js' );\nvar blockedaccessorunary3d = require( './3d_blocked_accessors.js' );\nvar blockedaccessorunary4d = require( './4d_blocked_accessors.js' );\nvar blockedaccessorunary5d = require( './5d_blocked_accessors.js' );\nvar blockedaccessorunary6d = require( './6d_blocked_accessors.js' );\nvar blockedaccessorunary7d = require( './7d_blocked_accessors.js' );\nvar blockedaccessorunary8d = require( './8d_blocked_accessors.js' );\nvar blockedaccessorunary9d = require( './9d_blocked_accessors.js' );\nvar blockedaccessorunary10d = require( './10d_blocked_accessors.js' );\nvar blockedunary2d = require( './2d_blocked.js' );\nvar blockedunary3d = require( './3d_blocked.js' );\nvar blockedunary4d = require( './4d_blocked.js' );\nvar blockedunary5d = require( './5d_blocked.js' );\nvar blockedunary6d = require( './6d_blocked.js' );\nvar blockedunary7d = require( './7d_blocked.js' );\nvar blockedunary8d = require( './8d_blocked.js' );\nvar blockedunary9d = require( './9d_blocked.js' );\nvar blockedunary10d = require( './10d_blocked.js' );\nvar accessorunary0d = require( './0d_accessors.js' );\nvar accessorunary1d = require( './1d_accessors.js' );\nvar accessorunary2d = require( './2d_accessors.js' );\nvar accessorunary3d = require( './3d_accessors.js' );\nvar accessorunary4d = require( './4d_accessors.js' );\nvar accessorunary5d = require( './5d_accessors.js' );\nvar accessorunary6d = require( './6d_accessors.js' );\nvar accessorunary7d = require( './7d_accessors.js' );\nvar accessorunary8d = require( './8d_accessors.js' );\nvar accessorunary9d = require( './9d_accessors.js' );\nvar accessorunary10d = require( './10d_accessors.js' );\nvar accessorunarynd = require( './nd_accessors.js' );\nvar unary0d = require( './0d.js' );\nvar unary1d = require( './1d.js' );\nvar unary2d = require( './2d.js' );\nvar unary3d = require( './3d.js' );\nvar unary4d = require( './4d.js' );\nvar unary5d = require( './5d.js' );\nvar unary6d = require( './6d.js' );\nvar unary7d = require( './7d.js' );\nvar unary8d = require( './8d.js' );\nvar unary9d = require( './9d.js' );\nvar unary10d = require( './10d.js' );\nvar unarynd = require( './nd.js' );\n\n\n// VARIABLES //\n\nvar UNARY = [\n\tunary0d,\n\tunary1d,\n\tunary2d,\n\tunary3d,\n\tunary4d,\n\tunary5d,\n\tunary6d,\n\tunary7d,\n\tunary8d,\n\tunary9d,\n\tunary10d\n];\nvar ACCESSOR_UNARY = [\n\taccessorunary0d,\n\taccessorunary1d,\n\taccessorunary2d,\n\taccessorunary3d,\n\taccessorunary4d,\n\taccessorunary5d,\n\taccessorunary6d,\n\taccessorunary7d,\n\taccessorunary8d,\n\taccessorunary9d,\n\taccessorunary10d\n];\nvar BLOCKED_UNARY = [\n\tblockedunary2d, // 0\n\tblockedunary3d,\n\tblockedunary4d,\n\tblockedunary5d,\n\tblockedunary6d,\n\tblockedunary7d,\n\tblockedunary8d,\n\tblockedunary9d,\n\tblockedunary10d // 8\n];\nvar BLOCKED_ACCESSOR_UNARY = [\n\tblockedaccessorunary2d, // 0\n\tblockedaccessorunary3d,\n\tblockedaccessorunary4d,\n\tblockedaccessorunary5d,\n\tblockedaccessorunary6d,\n\tblockedaccessorunary7d,\n\tblockedaccessorunary8d,\n\tblockedaccessorunary9d,\n\tblockedaccessorunary10d // 8\n];\nvar MAX_DIMS = UNARY.length - 1;\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from an input ndarray according to a callback function and assigns results to elements in an output ndarray.\n*\n* ## Notes\n*\n* - Each provided ndarray should be an `object` with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @throws {Error} arrays must have the same number of dimensions\n* @throws {Error} arrays must have the same shape\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unaryBy( [ x, y ], scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction unaryBy( arrays, fcn, clbk, thisArg ) {\n\tvar ndims;\n\tvar xmmv;\n\tvar ymmv;\n\tvar shx;\n\tvar shy;\n\tvar iox;\n\tvar ioy;\n\tvar len;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ns;\n\tvar x;\n\tvar y;\n\tvar d;\n\tvar i;\n\n\t// Unpack the ndarrays and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\ty = ndarray2object( arrays[ 1 ] );\n\n\t// Verify that the input and output arrays have the same number of dimensions...\n\tshx = x.shape;\n\tshy = y.shape;\n\tndims = shx.length;\n\tif ( ndims !== shy.length ) {\n\t\tthrow new Error( 'invalid arguments. Arrays must have the same number of dimensions (i.e., same rank). ndims(x) == '+ndims+'. ndims(y) == '+shy.length+'.' );\n\t}\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ ndims ]( x, y, fcn, clbk, thisArg );\n\t\t}\n\t\treturn UNARY[ ndims ]( x, y, fcn, clbk, thisArg );\n\t}\n\t// Verify that the input and output arrays have the same dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = shx[ i ];\n\t\tif ( d !== shy[ i ] ) {\n\t\t\tthrow new Error( 'invalid arguments. Arrays must have the same shape.' );\n\t\t}\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= d;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( d === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided empty ndarrays...\n\tif ( len === 0 ) {\n\t\treturn;\n\t}\n\t// Determine whether the ndarrays are one-dimensional and thus readily translate to one-dimensional strided arrays...\n\tif ( ndims === 1 ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ ndims ]( x, y, fcn, clbk, thisArg );\n\t\t}\n\t\treturn UNARY[ ndims ]( x, y, fcn, clbk, thisArg );\n\t}\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Determine whether the ndarray has only **one** non-singleton dimension (e.g., ndims=4, shape=[10,1,1,1]) so that we can treat the ndarrays as being equivalent to one-dimensional strided arrays...\n\tif ( ns === ndims-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( shx[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tx.shape = [ shx[i] ];\n\t\ty.shape = x.shape;\n\t\tx.strides = [ sx[i] ];\n\t\ty.strides = [ sy[i] ];\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ 1 ]( x, y, fcn, clbk, thisArg );\n\t\t}\n\t\treturn UNARY[ 1 ]( x, y, fcn, clbk, thisArg );\n\t}\n\tiox = iterationOrder( sx ); // +/-1\n\tioy = iterationOrder( sy ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tif ( iox !== 0 && ioy !== 0 && x.order === y.order ) {\n\t\t// Determine the minimum and maximum linear indices which are accessible by the array views:\n\t\txmmv = minmaxViewBufferIndex( shx, sx, x.offset );\n\t\tymmv = minmaxViewBufferIndex( shy, sy, y.offset );\n\n\t\t// Determine whether we can ignore shape (and strides) and treat the ndarrays as linear one-dimensional strided arrays...\n\t\tif ( len === ( xmmv[1]-xmmv[0]+1 ) && len === ( ymmv[1]-ymmv[0]+1 ) ) {\n\t\t\t// Note: the above is equivalent to @stdlib/ndarray/base/assert/is-contiguous, but in-lined so we can retain computed values...\n\t\t\tif ( iox === 1 ) {\n\t\t\t\tox = xmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\tox = xmmv[ 1 ];\n\t\t\t}\n\t\t\tif ( ioy === 1 ) {\n\t\t\t\toy = ymmv[ 0 ];\n\t\t\t} else {\n\t\t\t\toy = ymmv[ 1 ];\n\t\t\t}\n\t\t\tx.shape = [ len ];\n\t\t\ty.shape = x.shape;\n\t\t\tx.strides = [ iox ];\n\t\t\ty.strides = [ ioy ];\n\t\t\tx.offset = ox;\n\t\t\ty.offset = oy;\n\t\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_UNARY[ 1 ]( x, y, fcn, clbk, thisArg );\n\t\t\t}\n\t\t\treturn UNARY[ 1 ]( x, y, fcn, clbk, thisArg );\n\t\t}\n\t\t// At least one ndarray is non-contiguous, so we cannot directly use one-dimensional array functionality...\n\n\t\t// Determine whether we can use simple nested loops...\n\t\tif ( ndims <= MAX_DIMS ) {\n\t\t\t// So long as iteration for each respective array always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_UNARY[ ndims ]( x, y, fcn, clbk, thisArg );\n\t\t\t}\n\t\t\treturn UNARY[ ndims ]( x, y, fcn, clbk, thisArg );\n\t\t}\n\t\t// Fall-through to blocked iteration...\n\t}\n\t// At this point, we're either dealing with non-contiguous n-dimensional arrays, high dimensional n-dimensional arrays, and/or arrays having differing memory layouts, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_UNARY[ ndims-2 ]( x, y, fcn, clbk, thisArg ); // eslint-disable-line max-len\n\t\t}\n\t\treturn BLOCKED_UNARY[ ndims-2 ]( x, y, fcn, clbk, thisArg );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\treturn accessorunarynd( x, y, fcn, clbk, thisArg );\n\t}\n\tunarynd( x, y, fcn, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nmodule.exports = unaryBy;\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* Apply a unary function to each element retrieved from an input ndarray according to a callback function and assign results to elements in an output ndarray.\n*\n* @module @stdlib/ndarray/base/unary-by\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var unaryBy = require( '@stdlib/ndarray/base/unary-by' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unaryBy( [ x, y ], scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.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 isFloatingPointDataType = require( './../../../base/assert/is-floating-point-data-type' );\nvar isRealFloatingPointDataType = require( './../../../base/assert/is-real-floating-point-data-type' ); // eslint-disable-line id-length\nvar isComplexFloatingPointDataType = require( './../../../base/assert/is-complex-floating-point-data-type' ); // eslint-disable-line id-length\nvar isIntegerDataType = require( './../../../base/assert/is-integer-data-type' );\nvar isSignedIntegerDataType = require( './../../../base/assert/is-signed-integer-data-type' );\nvar isUnsignedIntegerDataType = require( './../../../base/assert/is-unsigned-integer-data-type' );\nvar isRealDataType = require( './../../../base/assert/is-real-data-type' );\nvar isNumericDataType = require( './../../../base/assert/is-numeric-data-type' );\nvar isDataType = require( './../../../base/assert/is-data-type' );\nvar defaults = require( './../../../defaults' );\nvar format = require( '@stdlib/string/format' );\n\n\n// VARIABLES //\n\nvar POLICY_TABLE = {\n\t'floating_point': [\n\t\tisFloatingPointDataType,\n\t\tdefaults.get( 'dtypes.floating_point' )\n\t],\n\t'real_floating_point': [\n\t\tisRealFloatingPointDataType,\n\t\tdefaults.get( 'dtypes.real_floating_point' )\n\t],\n\t'complex_floating_point': [\n\t\tisComplexFloatingPointDataType,\n\t\tdefaults.get( 'dtypes.complex_floating_point' )\n\t],\n\n\t'integer': [\n\t\tisIntegerDataType,\n\t\tdefaults.get( 'dtypes.integer' )\n\t],\n\t'signed_integer': [\n\t\tisSignedIntegerDataType,\n\t\tdefaults.get( 'dtypes.signed_integer' )\n\t],\n\t'unsigned_integer': [\n\t\tisUnsignedIntegerDataType,\n\t\tdefaults.get( 'dtypes.unsigned_integer' )\n\t],\n\n\t'real': [\n\t\tisRealDataType,\n\t\tdefaults.get( 'dtypes.real' )\n\t],\n\n\t'numeric': [\n\t\tisNumericDataType,\n\t\tdefaults.get( 'dtypes.numeric' )\n\t]\n};\nvar DEFAULT_DTYPE = defaults.get( 'dtypes.default' );\n\n\n// MAIN //\n\n/**\n* Resolves the output ndarray data type for a unary function.\n*\n* @param {string} dtype - input ndarray data type\n* @param {string} policy - output ndarray data type policy\n* @throws {TypeError} second argument must be a recognized data type policy\n* @throws {Error} unexpected error\n* @returns {string} output ndarray data type\n*\n* @example\n* var dt = resolve( 'float64', 'complex_floating_point' );\n* // returns \n*/\nfunction resolve( dtype, policy ) {\n\tvar p;\n\tif ( policy === 'default' ) {\n\t\t// When the policy is \"default\", the output data type should always be the default data type without consideration for the input data type:\n\t\treturn DEFAULT_DTYPE;\n\t}\n\tif ( policy === 'same' || policy === 'promoted' ) { // note: for unary APIs, the \"promoted\" data type is the same as the input data type\n\t\treturn dtype;\n\t}\n\tif ( policy === 'bool' ) {\n\t\tthrow new Error( 'not implemented' ); // TODO: update once the `bool` dtype is supported\n\t}\n\tp = POLICY_TABLE[ policy ];\n\tif ( p === void 0 ) {\n\t\t// Check for an explicit data type...\n\t\tif ( isDataType( policy ) ) {\n\t\t\treturn policy;\n\t\t}\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a supported data type policy. Value: `%s`.', policy ) );\n\t}\n\tif ( p[ 0 ]( dtype ) ) {\n\t\treturn dtype;\n\t}\n\treturn p[ 1 ];\n}\n\n\n// EXPORTS //\n\nmodule.exports = resolve;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Resolve the output ndarray data type for a unary function.\n*\n* @module @stdlib/ndarray/base/unary-output-dtype\n*\n* @example\n* var resolve = require( '@stdlib/ndarray/base/unary-output-dtype' );\n*\n* var dt = resolve( 'float64', 'complex_floating_point' );\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 shape2strides = require( './../../../base/shape2strides' );\nvar strides2offset = require( './../../../base/strides2offset' );\nvar buffer = require( './../../../base/buffer' );\nvar format = require( '@stdlib/string/format' );\nvar ndarray = require( './../../../base/ctor' );\nvar numel = require( './../../../base/numel' );\n\n\n// MAIN //\n\n/**\n* Creates a zero-filled ndarray having a specified shape and data type.\n*\n* @param {string} dtype - data type\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - array order\n* @throws {TypeError} first argument must be a recognized data type\n* @returns {ndarray} ndarray\n*\n* @example\n* var arr = zeros( 'float32', [ 2, 2 ], 'row-major' );\n* // returns \n*\n* var sh = arr.shape;\n* // returns [ 2, 2 ]\n*\n* var dt = arr.dtype;\n* // returns 'float32'\n*/\nfunction zeros( dtype, shape, order ) {\n\tvar ndims;\n\tvar buf;\n\tvar len;\n\tvar st;\n\n\tndims = shape.length;\n\tif ( ndims > 0 ) {\n\t\tlen = numel( shape );\n\t\tst = shape2strides( shape, order );\n\t} else {\n\t\t// For 0-dimensional arrays, the buffer should contain a single element...\n\t\tlen = 1;\n\t\tst = [ 0 ];\n\t}\n\tbuf = buffer( dtype, len );\n\tif ( buf === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a recognized data type. Value: `%s`.', dtype ) );\n\t}\n\n\treturn new ndarray( dtype, buf, shape, st, strides2offset( shape, st ), order ); // eslint-disable-line max-len\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 ndarray having a specified shape and data type.\n*\n* @module @stdlib/ndarray/base/zeros\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/base/zeros' );\n*\n* var arr = zeros( 'float32', [ 2, 2 ], 'row-major' );\n* // returns \n*\n* var sh = arr.shape;\n* // returns [ 2, 2 ]\n*\n* var dt = arr.dtype;\n* // returns 'float32'\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 shape2strides = require( './../../../base/shape2strides' );\nvar strides2offset = require( './../../../base/strides2offset' );\nvar buffer = require( './../../../base/buffer' );\nvar numel = require( './../../../base/numel' );\nvar getDType = require( './../../../base/dtype' );\nvar getShape = require( './../../../base/shape' );\nvar getOrder = require( './../../../base/order' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Creates a zero-filled ndarray having the same shape and data type as a provided ndarray.\n*\n* @param {ndarray} x - input array\n* @throws {TypeError} first argument must have a recognized data type\n* @returns {ndarray} ndarray\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/base/zeros' );\n*\n* var x = zeros( 'float32', [ 2, 2 ], 'row-major' );\n* // returns \n*\n* var y = zerosLike( x );\n* // returns \n*\n* var sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* var dt = y.dtype;\n* // returns 'float32'\n*/\nfunction zerosLike( x ) {\n\tvar ndims;\n\tvar len;\n\tvar buf;\n\tvar ord;\n\tvar sh;\n\tvar st;\n\tvar dt;\n\n\tdt = getDType( x );\n\tsh = getShape( x, true );\n\tord = getOrder( x );\n\n\tndims = sh.length;\n\tif ( ndims > 0 ) {\n\t\tlen = numel( sh );\n\t\tst = shape2strides( sh, ord );\n\t} else {\n\t\t// For 0-dimensional arrays, the buffer should contain a single element...\n\t\tlen = 1;\n\t\tst = [ 0 ];\n\t}\n\tbuf = buffer( dt, len );\n\tif ( buf === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must have a recognized data type. Value: `%s`.', dt ) );\n\t}\n\treturn new x.constructor( dt, buf, sh, st, strides2offset( sh, st ), ord );\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 ndarray having the same shape and data type as a provided ndarray.\n*\n* @module @stdlib/ndarray/base/zeros-like\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/base/zeros' );\n* var zerosLike = require( '@stdlib/ndarray/base/zeros-like' );\n*\n* var x = zeros( 'float32', [ 2, 2 ], 'row-major' );\n* // returns \n*\n* var y = zerosLike( x );\n* // returns \n*\n* var sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* var dt = y.dtype;\n* // returns 'float32'\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: function-object, napi, unary\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 assert\n* @memberof ns\n* @readonly\n* @type {Namespace}\n* @see {@link module:@stdlib/ndarray/base/assert}\n*/\nsetReadOnly( ns, 'assert', require( './../../base/assert' ) );\n\n/**\n* @name assign\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assign}\n*/\nsetReadOnly( ns, 'assign', require( './../../base/assign' ) );\n\n/**\n* @name binaryLoopOrder\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/binary-loop-interchange-order}\n*/\nsetReadOnly( ns, 'binaryLoopOrder', require( './../../base/binary-loop-interchange-order' ) );\n\n/**\n* @name binaryBlockSize\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/binary-tiling-block-size}\n*/\nsetReadOnly( ns, 'binaryBlockSize', require( './../../base/binary-tiling-block-size' ) );\n\n/**\n* @name bind2vind\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/bind2vind}\n*/\nsetReadOnly( ns, 'bind2vind', require( './../../base/bind2vind' ) );\n\n/**\n* @name broadcastArray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/broadcast-array}\n*/\nsetReadOnly( ns, 'broadcastArray', require( './../../base/broadcast-array' ) );\n\n/**\n* @name broadcastScalar\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/broadcast-scalar}\n*/\nsetReadOnly( ns, 'broadcastScalar', require( './../../base/broadcast-scalar' ) );\n\n/**\n* @name broadcastShapes\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/broadcast-shapes}\n*/\nsetReadOnly( ns, 'broadcastShapes', require( './../../base/broadcast-shapes' ) );\n\n/**\n* @name buffer\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/buffer}\n*/\nsetReadOnly( ns, 'buffer', require( './../../base/buffer' ) );\n\n/**\n* @name bufferCtors\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/buffer-ctors}\n*/\nsetReadOnly( ns, 'bufferCtors', require( './../../base/buffer-ctors' ) );\n\n/**\n* @name bufferDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/buffer-dtype}\n*/\nsetReadOnly( ns, 'bufferDataType', require( './../../base/buffer-dtype' ) );\n\n/**\n* @name bufferDataTypeEnum\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/buffer-dtype-enum}\n*/\nsetReadOnly( ns, 'bufferDataTypeEnum', require( './../../base/buffer-dtype-enum' ) );\n\n/**\n* @name bytesPerElement\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/bytes-per-element}\n*/\nsetReadOnly( ns, 'bytesPerElement', require( './../../base/bytes-per-element' ) );\n\n/**\n* @name char2dtype\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/char2dtype}\n*/\nsetReadOnly( ns, 'char2dtype', require( './../../base/char2dtype' ) );\n\n/**\n* @name clampIndex\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/clamp-index}\n*/\nsetReadOnly( ns, 'clampIndex', require( './../../base/clamp-index' ) );\n\n/**\n* @name ndarray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ctor}\n*/\nsetReadOnly( ns, 'ndarray', require( './../../base/ctor' ) );\n\n/**\n* @name data\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/data-buffer}\n*/\nsetReadOnly( ns, 'data', require( './../../base/data-buffer' ) );\n\n/**\n* @name dtype\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype}\n*/\nsetReadOnly( ns, 'dtype', require( './../../base/dtype' ) );\n\n/**\n* @name dtypeChar\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype-char}\n*/\nsetReadOnly( ns, 'dtypeChar', require( './../../base/dtype-char' ) );\n\n/**\n* @name dtypeDesc\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype-desc}\n*/\nsetReadOnly( ns, 'dtypeDesc', require( './../../base/dtype-desc' ) );\n\n/**\n* @name dtypeEnum2Str\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype-enum2str}\n*/\nsetReadOnly( ns, 'dtypeEnum2Str', require( './../../base/dtype-enum2str' ) );\n\n/**\n* @name dtypeResolveEnum\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype-resolve-enum}\n*/\nsetReadOnly( ns, 'dtypeResolveEnum', require( './../../base/dtype-resolve-enum' ) );\n\n/**\n* @name dtypeResolveStr\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype-resolve-str}\n*/\nsetReadOnly( ns, 'dtypeResolveStr', require( './../../base/dtype-resolve-str' ) );\n\n/**\n* @name dtypeStr2Enum\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype-str2enum}\n*/\nsetReadOnly( ns, 'dtypeStr2Enum', require( './../../base/dtype-str2enum' ) );\n\n/**\n* @name dtype2c\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype2c}\n*/\nsetReadOnly( ns, 'dtype2c', require( './../../base/dtype2c' ) );\n\n/**\n* @name dtypes2signatures\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtypes2signatures}\n*/\nsetReadOnly( ns, 'dtypes2signatures', require( './../../base/dtypes2signatures' ) );\n\n/**\n* @name empty\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/empty}\n*/\nsetReadOnly( ns, 'empty', require( './../../base/empty' ) );\n\n/**\n* @name emptyLike\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/empty-like}\n*/\nsetReadOnly( ns, 'emptyLike', require( './../../base/empty-like' ) );\n\n/**\n* @name expandDimensions\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/expand-dimensions}\n*/\nsetReadOnly( ns, 'expandDimensions', require( './../../base/expand-dimensions' ) );\n\n/**\n* @name fliplr\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/fliplr}\n*/\nsetReadOnly( ns, 'fliplr', require( './../../base/fliplr' ) );\n\n/**\n* @name flipud\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/flipud}\n*/\nsetReadOnly( ns, 'flipud', require( './../../base/flipud' ) );\n\n/**\n* @name scalar2ndarray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/from-scalar}\n*/\nsetReadOnly( ns, 'scalar2ndarray', require( './../../base/from-scalar' ) );\n\n/**\n* @name ind\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ind}\n*/\nsetReadOnly( ns, 'ind', require( './../../base/ind' ) );\n\n/**\n* @name ind2sub\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ind2sub}\n*/\nsetReadOnly( ns, 'ind2sub', require( './../../base/ind2sub' ) );\n\n/**\n* @name iterationOrder\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/iteration-order}\n*/\nsetReadOnly( ns, 'iterationOrder', require( './../../base/iteration-order' ) );\n\n/**\n* @name maxViewBufferIndex\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/max-view-buffer-index}\n*/\nsetReadOnly( ns, 'maxViewBufferIndex', require( './../../base/max-view-buffer-index' ) );\n\n/**\n* @name maybeBroadcastArray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/maybe-broadcast-array}\n*/\nsetReadOnly( ns, 'maybeBroadcastArray', require( './../../base/maybe-broadcast-array' ) );\n\n/**\n* @name metaDataProps\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/meta-data-props}\n*/\nsetReadOnly( ns, 'metaDataProps', require( './../../base/meta-data-props' ) );\n\n/**\n* @name minViewBufferIndex\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/min-view-buffer-index}\n*/\nsetReadOnly( ns, 'minViewBufferIndex', require( './../../base/min-view-buffer-index' ) );\n\n/**\n* @name minmaxViewBufferIndex\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/minmax-view-buffer-index}\n*/\nsetReadOnly( ns, 'minmaxViewBufferIndex', require( './../../base/minmax-view-buffer-index' ) );\n\n/**\n* @name ndarraylike2object\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ndarraylike2object}\n*/\nsetReadOnly( ns, 'ndarraylike2object', require( './../../base/ndarraylike2object' ) );\n\n/**\n* @name ndims\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ndims}\n*/\nsetReadOnly( ns, 'ndims', require( './../../base/ndims' ) );\n\n/**\n* @name nextCartesianIndex\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/next-cartesian-index}\n*/\nsetReadOnly( ns, 'nextCartesianIndex', require( './../../base/next-cartesian-index' ) );\n\n/**\n* @name nonsingletonDimensions\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/nonsingleton-dimensions}\n*/\nsetReadOnly( ns, 'nonsingletonDimensions', require( './../../base/nonsingleton-dimensions' ) );\n\n/**\n* @name normalizeIndex\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/normalize-index}\n*/\nsetReadOnly( ns, 'normalizeIndex', require( './../../base/normalize-index' ) );\n\n/**\n* @name nullary\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/nullary}\n*/\nsetReadOnly( ns, 'nullary', require( './../../base/nullary' ) );\n\n/**\n* @name nullaryLoopOrder\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/nullary-loop-interchange-order}\n*/\nsetReadOnly( ns, 'nullaryLoopOrder', require( './../../base/nullary-loop-interchange-order' ) );\n\n/**\n* @name nullaryBlockSize\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/nullary-tiling-block-size}\n*/\nsetReadOnly( ns, 'nullaryBlockSize', require( './../../base/nullary-tiling-block-size' ) );\n\n/**\n* @name numel\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/numel}\n*/\nsetReadOnly( ns, 'numel', require( './../../base/numel' ) );\n\n/**\n* @name offset\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/offset}\n*/\nsetReadOnly( ns, 'offset', require( './../../base/offset' ) );\n\n/**\n* @name order\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/order}\n*/\nsetReadOnly( ns, 'order', require( './../../base/order' ) );\n\n/**\n* @name outputPolicyEnum2Str\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/output-policy-enum2str}\n*/\nsetReadOnly( ns, 'outputPolicyEnum2Str', require( './../../base/output-policy-enum2str' ) );\n\n/**\n* @name outputPolicyResolveEnum\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/output-policy-resolve-enum}\n*/\nsetReadOnly( ns, 'outputPolicyResolveEnum', require( './../../base/output-policy-resolve-enum' ) );\n\n/**\n* @name outputPolicyResolveStr\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/output-policy-resolve-str}\n*/\nsetReadOnly( ns, 'outputPolicyResolveStr', require( './../../base/output-policy-resolve-str' ) );\n\n/**\n* @name outputPolicyStr2Enum\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/output-policy-str2enum}\n*/\nsetReadOnly( ns, 'outputPolicyStr2Enum', require( './../../base/output-policy-str2enum' ) );\n\n/**\n* @name prependSingletonDimensions\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/prepend-singleton-dimensions}\n*/\nsetReadOnly( ns, 'prependSingletonDimensions', require( './../../base/prepend-singleton-dimensions' ) );\n\n/**\n* @name removeSingletonDimensions\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/remove-singleton-dimensions}\n*/\nsetReadOnly( ns, 'removeSingletonDimensions', require( './../../base/remove-singleton-dimensions' ) );\n\n/**\n* @name reverse\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/reverse}\n*/\nsetReadOnly( ns, 'reverse', require( './../../base/reverse' ) );\n\n/**\n* @name reverseDimension\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/reverse-dimension}\n*/\nsetReadOnly( ns, 'reverseDimension', require( './../../base/reverse-dimension' ) );\n\n/**\n* @name serializeMetaData\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/serialize-meta-data}\n*/\nsetReadOnly( ns, 'serializeMetaData', require( './../../base/serialize-meta-data' ) );\n\n/**\n* @name shape\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/shape}\n*/\nsetReadOnly( ns, 'shape', require( './../../base/shape' ) );\n\n/**\n* @name shape2strides\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/shape2strides}\n*/\nsetReadOnly( ns, 'shape2strides', require( './../../base/shape2strides' ) );\n\n/**\n* @name singletonDimensions\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/singleton-dimensions}\n*/\nsetReadOnly( ns, 'singletonDimensions', require( './../../base/singleton-dimensions' ) );\n\n/**\n* @name slice\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/slice}\n*/\nsetReadOnly( ns, 'slice', require( './../../base/slice' ) );\n\n/**\n* @name sliceAssign\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/slice-assign}\n*/\nsetReadOnly( ns, 'sliceAssign', require( './../../base/slice-assign' ) );\n\n/**\n* @name sliceDimension\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/slice-dimension}\n*/\nsetReadOnly( ns, 'sliceDimension', require( './../../base/slice-dimension' ) );\n\n/**\n* @name sliceDimensionFrom\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/slice-dimension-from}\n*/\nsetReadOnly( ns, 'sliceDimensionFrom', require( './../../base/slice-dimension-from' ) );\n\n/**\n* @name sliceDimensionTo\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/slice-dimension-to}\n*/\nsetReadOnly( ns, 'sliceDimensionTo', require( './../../base/slice-dimension-to' ) );\n\n/**\n* @name sliceFrom\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/slice-from}\n*/\nsetReadOnly( ns, 'sliceFrom', require( './../../base/slice-from' ) );\n\n/**\n* @name sliceTo\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/slice-to}\n*/\nsetReadOnly( ns, 'sliceTo', require( './../../base/slice-to' ) );\n\n/**\n* @name strides\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/strides}\n*/\nsetReadOnly( ns, 'strides', require( './../../base/strides' ) );\n\n/**\n* @name strides2offset\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/strides2offset}\n*/\nsetReadOnly( ns, 'strides2offset', require( './../../base/strides2offset' ) );\n\n/**\n* @name strides2order\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/strides2order}\n*/\nsetReadOnly( ns, 'strides2order', require( './../../base/strides2order' ) );\n\n/**\n* @name sub2ind\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/sub2ind}\n*/\nsetReadOnly( ns, 'sub2ind', require( './../../base/sub2ind' ) );\n\n/**\n* @name ndarray2array\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/to-array}\n*/\nsetReadOnly( ns, 'ndarray2array', require( './../../base/to-array' ) );\n\n/**\n* @name transpose\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/transpose}\n*/\nsetReadOnly( ns, 'transpose', require( './../../base/transpose' ) );\n\n/**\n* @name unary\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary}\n*/\nsetReadOnly( ns, 'unary', require( './../../base/unary' ) );\n\n/**\n* @name unaryBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-by}\n*/\nsetReadOnly( ns, 'unaryBy', require( './../../base/unary-by' ) );\n\n/**\n* @name unaryLoopOrder\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-loop-interchange-order}\n*/\nsetReadOnly( ns, 'unaryLoopOrder', require( './../../base/unary-loop-interchange-order' ) );\n\n/**\n* @name unaryOutputDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-output-dtype}\n*/\nsetReadOnly( ns, 'unaryOutputDataType', require( './../../base/unary-output-dtype' ) );\n\n/**\n* @name unaryBlockSize\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-tiling-block-size}\n*/\nsetReadOnly( ns, 'unaryBlockSize', require( './../../base/unary-tiling-block-size' ) );\n\n/**\n* @name vind2bind\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/vind2bind}\n*/\nsetReadOnly( ns, 'vind2bind', require( './../../base/vind2bind' ) );\n\n/**\n* @name wrapIndex\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/wrap-index}\n*/\nsetReadOnly( ns, 'wrapIndex', require( './../../base/wrap-index' ) );\n\n/**\n* @name zeros\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/zeros}\n*/\nsetReadOnly( ns, 'zeros', require( './../../base/zeros' ) );\n\n/**\n* @name zerosLike\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/zeros-like}\n*/\nsetReadOnly( ns, 'zerosLike', require( './../../base/zeros-like' ) );\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// MODULES //\n\nvar isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar copy = require( '@stdlib/array/base/copy-indexed' );\nvar getDType = require( './../../dtype' );\nvar getShape = require( './../../shape' );\nvar getStrides = require( './../../strides' );\nvar getOffset = require( './../../offset' );\nvar getOrder = require( './../../order' );\nvar getData = require( './../../data-buffer' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Broadcasts an ndarray to a specified shape.\n*\n* ## Notes\n*\n* - The returned array is a **read-only** view on the input array data buffer. The view is typically **not** contiguous. As more than one element of a returned view may refer to the same memory location, writing to the input array may affect multiple elements. If you need to write to the input array, copy the input array before broadcasting.\n*\n* @param {ndarray} x - input array\n* @param {NonNegativeIntegerArray} shape - desired shape\n* @throws {TypeError} first argument must be an ndarray\n* @throws {TypeError} second argument must be an array of nonnegative integers\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 shape\n* @throws {Error} input array and desired shape must be broadcast compatible\n* @returns {ndarray} broadcasted array\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var shx = x.shape;\n* // returns [ 2, 2 ]\n*\n* var y = broadcastArray( x, [ 3, 2, 2 ] );\n* // returns \n*\n* var shy = y.shape;\n* // returns [ 3, 2, 2 ]\n*\n* var v = y.get( 0, 0, 0 );\n* // returns 1\n*\n* v = y.get( 0, 0, 1 );\n* // returns 2\n*\n* v = y.get( 1, 0, 0 );\n* // returns 1\n*\n* v = y.get( 1, 1, 0 );\n* // returns 3\n*\n* v = y.get( 2, 0, 0 );\n* // returns 1\n*\n* v = y.get( 2, 1, 1 );\n* // returns 4\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var y = broadcastArray( x, [ 3, 2 ] );\n* // throws \n*/\nfunction broadcastArray( x, shape ) {\n\tvar strides;\n\tvar dim;\n\tvar sh;\n\tvar st;\n\tvar N;\n\tvar M;\n\tvar d;\n\tvar i;\n\tvar j;\n\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray. Value: `%s`.', x ) );\n\t}\n\tif ( !isCollection( shape ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an array of nonnegative integers. Value: `%s`.', shape ) );\n\t}\n\tN = shape.length;\n\tsh = getShape( x );\n\tM = sh.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// Initialize a strides array...\n\tstrides = [];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tstrides.push( 0 );\n\t}\n\t// Determine the output array strides...\n\tst = getStrides( x );\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 = sh[ j ];\n\t\tdim = shape[ i ];\n\t\tif ( !isNonNegativeInteger( dim ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an array of nonnegative integers. Value: `%s`.', '[' + shape.join( ',' ) + ']' ) );\n\t\t}\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( sh ).join( ', ' ), copy( shape ).join( ', ' ), i ) );\n\t\t}\n\t\tif ( d === dim ) {\n\t\t\tstrides[ i ] = st[ j ];\n\t\t} else if ( d === 1 ) {\n\t\t\t// In order to broadcast dimensions, we set the stride for that dimension to zero...\n\t\t\tstrides[ 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( sh ).join( ', ' ), copy( shape ).join( ', ' ), i ) );\n\t\t}\n\t}\n\treturn new x.constructor( getDType( x ), getData( x ), copy( shape ), strides, getOffset( x ), getOrder( x ), { // eslint-disable-line max-len\n\t\t'readonly': true\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 ndarray to a specified shape.\n*\n* @module @stdlib/ndarray/broadcast-array\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n* var broadcastArray = require( '@stdlib/ndarray/broadcast-array' );\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var shx = x.shape;\n* // returns [ 2, 2 ]\n*\n* var y = broadcastArray( x, [ 3, 2, 2 ] );\n* // returns \n*\n* var shy = y.shape;\n* // returns [ 3, 2, 2 ]\n*\n* var v = y.get( 0, 0, 0 );\n* // returns 1\n*\n* v = y.get( 0, 0, 1 );\n* // returns 2\n*\n* v = y.get( 1, 0, 0 );\n* // returns 1\n*\n* v = y.get( 1, 1, 0 );\n* // returns 3\n*\n* v = y.get( 2, 0, 0 );\n* // returns 1\n*\n* v = y.get( 2, 1, 1 );\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) 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* Returns the first row index at which a given one-dimensional array of types can be found in a two-dimensional reference array of types (or `-1` if not found).\n*\n* ## Notes\n*\n* - The intended use case for this function is for type dispatch (i.e., given a set of array data types, find a matching interface according the interface's accepted array data types).\n* - The function assumes that `x` is stored in row-major order.\n* - The function assumes that the number of indexed elements in `y` equals the number of columns in `x`.\n* - The function returns a row index. To convert to a linear index, multiply `strideX1` by the return value.\n*\n* @private\n* @param {NonNegativeInteger} N - number of rows in `x` (size of first dimension)\n* @param {NonNegativeInteger} M - number of columns in `x` (size of second dimension)\n* @param {ArrayLikeObject} x - input two-dimensional reference array\n* @param {integer} strideX1 - `x` stride length along first dimension\n* @param {integer} strideX2 - `x` stride length along second dimension\n* @param {NonNegativeInteger} offsetX - `x` starting index\n* @param {ArrayLikeObject} y - search array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - `y` starting index\n* @returns {integer} row index (if found) and `-1` otherwise\n*\n* @example\n* // Define a reference array to search:\n* var types = [\n* 'float64', 'float64', 'float64',\n* 'float32', 'float32', 'float32',\n* 'uint32', 'uint32', 'float64',\n* 'int32', 'int32', 'float64',\n* 'uint16', 'uint16', 'float64',\n* 'int16', 'int16', 'float64',\n* 'uint8', 'uint8', 'float64',\n* 'int8', 'int8', 'float64'\n* ];\n*\n* // Define reference array dimensions:\n* var N = 8; // rows\n* var M = 3; // columns\n*\n* // Define a search array:\n* y1 = [\n* 'float32', 'float32', 'float32',\n* ];\n*\n* // Find the list of types:\n* var r1 = indexOfTypes( N, M, types, M, 1, 0, y1, 1, 0 );\n* // returns 1\n*\n// Define a search array:\n* y2 = [\n* 'float32', 'float32', 'float64',\n* ];\n*\n* // Find the list of types:\n* var r2 = indexOfTypes( N, M, types, M, 1, 0, y2, 1, 0 );\n* // returns -1\n*/\nfunction indexOfTypes( N, M, x, strideX1, strideX2, offsetX, y, strideY, offsetY ) { // eslint-disable-line max-len\n\tvar ix;\n\tvar iy;\n\tvar i;\n\tvar j;\n\n\t// Search for the first row which matches `y`...\n\tix = offsetX;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tiy = offsetY;\n\t\tfor ( j = 0; j < M; j++ ) {\n\t\t\tif ( x[ ix+(j*strideX2) ] !== y[ iy ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tiy += strideY;\n\t\t}\n\t\t// If we successfully iterated over all columns, then that means we've found a match...\n\t\tif ( j === M ) {\n\t\t\treturn i;\n\t\t}\n\t\tix += strideX1;\n\t}\n\treturn -1;\n}\n\n\n// EXPORTS //\n\nmodule.exports = indexOfTypes;\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 isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar isPositiveInteger = require( '@stdlib/assert/is-positive-integer' );\nvar isInteger = require( '@stdlib/assert/is-integer' ).isPrimitive;\nvar isFunctionArray = require( '@stdlib/assert/is-function-array' );\nvar isFunction = require( '@stdlib/assert/is-function' );\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );\nvar format = require( '@stdlib/string/format' );\nvar getDType = require( './../../dtype' );\nvar resolveEnum = require( './../../base/dtype-resolve-enum' );\nvar indexOfTypes = require( './index_of_types.js' );\n\n\n// FUNCTIONS //\n\n/**\n* Returns a list of data type enumeration constants.\n*\n* @private\n* @param {Collection} types - list of types\n* @returns {IntegerArray} list of data type enumeration constants\n*/\nfunction types2enums( types ) {\n\tvar out;\n\tvar i;\n\n\tout = [];\n\tfor ( i = 0; i < types.length; i++ ) {\n\t\tout.push( resolveEnum( types[ i ] ) );\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Returns an ndarray function interface which performs multiple dispatch.\n*\n* @param {(FunctionArray|Function)} fcns - list of ndarray functions\n* @param {Collection} types - one-dimensional list of ndarray argument data types\n* @param {(Collection|null)} data - ndarray function data (e.g., callbacks)\n* @param {PositiveInteger} nargs - total number of ndarray function interface arguments\n* @param {NonNegativeInteger} nin - number of input ndarrays\n* @param {NonNegativeInteger} nout - number of output ndarrays\n* @throws {TypeError} first argument must be either a function or an array of functions\n* @throws {TypeError} second argument must be an array-like object\n* @throws {TypeError} third argument must be an array-like object or `null`\n* @throws {Error} third and first arguments must have the same number of elements\n* @throws {TypeError} fourth argument must be a positive integer\n* @throws {TypeError} fifth argument must be a nonnegative integer\n* @throws {TypeError} sixth argument must be a nonnegative integer\n* @throws {Error} fourth argument must equal the specified number of input and output arrays\n* @throws {Error} number of types must match the number of functions times the total number of array arguments for each function\n* @throws {Error} interface must accept at least one input and/or output ndarray\n* @returns {Function} ndarray function interface\n*\n* @example\n* var unary = require( '@stdlib/ndarray/base/unary' );\n* var abs = require( '@stdlib/math/base/special/abs' );\n* var Float64Array = require( '@stdlib/array/float64' );\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n*\n* var types = [\n* 'float64', 'float64'\n* ];\n*\n* var data = [\n* abs\n* ];\n*\n* var absolute = dispatch( unary, types, data, 2, 1, 1 );\n*\n* // ...\n*\n* var xbuf = new Float64Array( [ -1.0, -2.0, -3.0, -4.0, -5.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* var x = ndarray( 'float64', xbuf, [ 5 ], [ 1 ], 0, 'row-major' );\n* var y = ndarray( 'float64', ybuf, [ 5 ], [ 1 ], 0, 'row-major' );\n*\n* absolute( x, y );\n* // ybuf => [ 1.0, 2.0, 3.0, 4.0, 5.0 ]\n*/\nfunction dispatch( fcns, types, data, nargs, nin, nout ) {\n\tvar narrays;\n\tvar nfcns;\n\tvar fcn;\n\n\tif ( isFunction( fcns ) ) {\n\t\tfcn = fcns;\n\t} else if ( !isFunctionArray( fcns ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be either a function or an array of functions. Value: `%s`.', fcns ) );\n\t}\n\tif ( !isCollection( types ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an array-like object. Value: `%s`.', types ) );\n\t}\n\tif ( !isCollection( data ) && data !== null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an array-like object or null. Value: `%s`.', data ) );\n\t}\n\tif ( !isPositiveInteger( nargs ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be a positive integer. Value: `%s`.', nargs ) );\n\t}\n\tif ( !isNonNegativeInteger( nin ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fifth argument must be a nonnegative integer. Value: `%s`.', nin ) );\n\t}\n\tif ( !isNonNegativeInteger( nout ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Sixth argument must be a nonnegative integer. Value: `%s`.', nout ) );\n\t}\n\tnarrays = nin + nout;\n\tif ( narrays === 0 ) {\n\t\tthrow new Error( 'invalid arguments. Interface must accept at least one input and/or output ndarray. Based on the provided arguments, `nin+nout` equals `0`.' );\n\t}\n\tif ( nargs !== narrays ) {\n\t\tthrow new Error( 'invalid arguments. Fourth argument does not equal the number of input and output ndarrays.' );\n\t}\n\tif ( fcn ) {\n\t\tnfcns = types.length / narrays;\n\t\tif ( !isInteger( nfcns ) ) {\n\t\t\tthrow new Error( 'invalid argument. Unexpected number of types. A type must be specified for each input and output ndarray for each provided ndarray function.' );\n\t\t}\n\t} else {\n\t\tnfcns = fcns.length;\n\t\tif ( types.length !== nfcns*narrays ) {\n\t\t\tthrow new Error( 'invalid argument. Unexpected number of types. A type must be specified for each input and output ndarray for each provided ndarray function.' );\n\t\t}\n\t}\n\tif ( data && data.length !== nfcns ) {\n\t\tthrow new Error( 'invalid argument. The third argument must have the same number of elements as the first argument.' );\n\t}\n\ttypes = types2enums( types );\n\treturn dispatcher;\n\n\t/**\n\t* ndarray function interface which performs multiple dispatch.\n\t*\n\t* @private\n\t* @param {ndarrayLike} x - ndarray\n\t* @param {...ndarrayLike} args - ndarray arguments\n\t* @throws {Error} insufficient arguments\n\t* @throws {Error} too many arguments\n\t* @throws {TypeError} input array arguments must be ndarray-like objects\n\t* @throws {TypeError} output array arguments must be ndarray-like objects\n\t* @throws {TypeError} unable to resolve an ndarray function supporting the provided ndarray argument data types\n\t* @returns {(ndarrayLike|Array|void)} destination array(s)\n\t*/\n\tfunction dispatcher() {\n\t\tvar arrays;\n\t\tvar dtypes;\n\t\tvar argc;\n\t\tvar idx;\n\t\tvar v;\n\t\tvar f;\n\t\tvar i;\n\n\t\targc = arguments.length;\n\t\tif ( argc !== nargs ) {\n\t\t\tif ( argc < nargs ) {\n\t\t\t\tthrow new Error( 'invalid invocation. Insufficient arguments.' );\n\t\t\t}\n\t\t\tthrow new Error( 'invalid invocation. Too many arguments.' );\n\t\t}\n\t\tarrays = [];\n\t\tdtypes = [];\n\t\tfor ( i = 0; i < nargs; i++ ) {\n\t\t\tv = arguments[ i ];\n\t\t\tif ( !isndarrayLike( v ) ) {\n\t\t\t\tif ( i < nin ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Input array must be an ndarray-like object. Value: `%s`.', v ) );\n\t\t\t\t} else {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Output array must be an ndarray-like object. Value: `%s`.', v ) );\n\t\t\t\t}\n\t\t\t}\n\t\t\tarrays.push( v );\n\t\t\tdtypes.push( resolveEnum( getDType( v ) ) );\n\t\t}\n\t\t// Resolve the ndarray function satisfying the input array types:\n\t\tidx = indexOfTypes( nfcns, narrays, types, narrays, 1, 0, dtypes, 1, 0 ); // eslint-disable-line max-len\n\n\t\t// Check whether we were able to successfully resolve an ndarray function:\n\t\tif ( idx < 0 ) {\n\t\t\tthrow new TypeError( 'invalid arguments. Unable to resolve an ndarray function supporting the provided array argument data types.' );\n\t\t}\n\t\t// Retrieve the ndarray function:\n\t\tif ( fcn ) {\n\t\t\tf = fcn;\n\t\t} else {\n\t\t\tf = fcns[ idx ];\n\t\t}\n\t\t// Evaluate the ndarray function:\n\t\tif ( data ) {\n\t\t\tf( arrays, data[ idx ] );\n\t\t} else {\n\t\t\tf( arrays );\n\t\t}\n\t\tif ( nout === 1 ) {\n\t\t\treturn arrays[ narrays-1 ];\n\t\t}\n\t\tif ( nout === 0 ) {\n\t\t\treturn;\n\t\t}\n\t\treturn arrays.slice( nin );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = dispatch;\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 an ndarray function interface which performs multiple dispatch.\n*\n* @module @stdlib/ndarray/dispatch\n*\n* @example\n* var dispatch = require( '@stdlib/ndarray/dispatch' );\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var unary = require( '@stdlib/ndarray/base/unary' );\n* var abs = require( '@stdlib/math/base/special/abs' );\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var types = [\n* 'float64', 'float64'\n* ];\n*\n* var data = [\n* abs\n* ];\n*\n* var absolute = dispatch( unary, types, data, 2, 1, 1 );\n*\n* // ...\n*\n* var xbuf = new Float64Array( [ -1.0, -2.0, -3.0, -4.0, -5.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* var x = ndarray( 'float64', xbuf, [ 5 ], [ 1 ], 0, 'row-major' );\n* var y = ndarray( 'float64', ybuf, [ 5 ], [ 1 ], 0, 'row-major' );\n*\n* absolute( x, y );\n* // ybuf => [ 1.0, 2.0, 3.0, 4.0, 5.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 isPlainObject = require( '@stdlib/assert/is-plain-object' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar isArrayLike = require( '@stdlib/assert/is-array-like' );\nvar shape2strides = require( './../../base/shape2strides' );\nvar strides2offset = require( './../../base/strides2offset' );\nvar emptyArray = require( '@stdlib/array/empty' );\nvar allocUnsafe = require( '@stdlib/buffer/alloc-unsafe' );\nvar numel = require( './../../base/numel' );\nvar ndarray = require( './../../ctor' );\nvar defaults = require( './../../defaults' );\nvar format = require( '@stdlib/string/format' );\n\n\n// VARIABLES //\n\nvar DTYPE = defaults.get( 'dtypes.default' );\nvar ORDER = defaults.get( 'order' );\n\n\n// MAIN //\n\n/**\n* Creates an uninitialized ndarray having a specified shape and data type.\n*\n* @param {(NonNegativeIntegerArray|NonNegativeInteger)} shape - array shape\n* @param {Options} [options] - options\n* @param {string} [options.dtype='float64'] - data type\n* @param {string} [options.order='row-major'] - array order\n* @param {string} [options.mode=\"throw\"] - specifies how to handle indices which exceed array dimensions\n* @param {StringArray} [options.submode=[\"throw\"]] - specifies how to handle subscripts which exceed array dimensions on a per dimension basis\n* @throws {TypeError} first argument must be either a nonnegative integer or an array of nonnegative integers\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} `dtype` option must be a recognized data type\n* @throws {TypeError} `order` option must be a recognized array order\n* @throws {TypeError} must provide valid options\n* @returns {ndarray} ndarray\n*\n* @example\n* var arr = empty( [ 2, 2 ] );\n* // returns \n*\n* var sh = arr.shape;\n* // returns [ 2, 2 ]\n*\n* var dt = arr.dtype;\n* // returns 'float64'\n*/\nfunction empty( shape ) {\n\tvar options;\n\tvar dtype;\n\tvar order;\n\tvar ndims;\n\tvar opts;\n\tvar buf;\n\tvar len;\n\tvar st;\n\tvar sh;\n\n\topts = {};\n\tif ( arguments.length > 1 ) {\n\t\toptions = arguments[ 1 ];\n\t\tif ( !isPlainObject( options ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t\t}\n\t\tif ( hasOwnProp( options, 'dtype' ) ) {\n\t\t\tdtype = options.dtype;\n\t\t} else {\n\t\t\tdtype = DTYPE;\n\t\t}\n\t\tif ( hasOwnProp( options, 'order' ) ) {\n\t\t\torder = options.order;\n\t\t} else {\n\t\t\torder = ORDER;\n\t\t}\n\t\tif ( hasOwnProp( options, 'mode' ) ) {\n\t\t\topts.mode = options.mode;\n\t\t}\n\t\tif ( hasOwnProp( options, 'submode' ) ) {\n\t\t\topts.submode = options.submode;\n\t\t}\n\t} else {\n\t\tdtype = DTYPE;\n\t\torder = ORDER;\n\t}\n\tif ( typeof shape === 'number' ) {\n\t\tsh = [ shape ];\n\t} else if ( isArrayLike( shape ) ) {\n\t\tsh = shape;\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be either a nonnegative integer or an array of nonnegative integers. Value: `%s`.', shape ) );\n\t}\n\tndims = sh.length;\n\tif ( ndims > 0 ) {\n\t\tlen = numel( sh );\n\t\tif ( len !== len || len < 0 ) {\n\t\t\t// We should only get here if we've been provided an invalid shape (e.g., an array containing negative integers, etc)...\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be either a nonnegative integer or an array of nonnegative integers. Value: `%s`.', shape ) );\n\t\t}\n\t\tst = shape2strides( sh, order );\n\t} else {\n\t\t// For 0-dimensional arrays, the buffer should contain a single element...\n\t\tlen = 1;\n\t\tst = [ 0 ];\n\t}\n\tif ( dtype === 'binary' ) {\n\t\tbuf = allocUnsafe( len );\n\t} else {\n\t\tbuf = emptyArray( len, dtype );\n\t}\n\treturn new ndarray( dtype, buf, sh, st, strides2offset( sh, st ), order, opts ); // eslint-disable-line max-len\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 ndarray having a specified shape and data type.\n*\n* @module @stdlib/ndarray/empty\n*\n* @example\n* var empty = require( '@stdlib/ndarray/empty' );\n*\n* var arr = empty( [ 2, 2 ], {\n* 'dtype': 'float32'\n* });\n* // returns \n*\n* var sh = arr.shape;\n* // returns [ 2, 2 ]\n*\n* var dt = arr.dtype;\n* // returns 'float32'\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 isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );\nvar isPlainObject = require( '@stdlib/assert/is-plain-object' );\nvar isNonNegativeIntegerArray = require( '@stdlib/assert/is-nonnegative-integer-array' ).primitives;\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar shape2strides = require( './../../base/shape2strides' );\nvar strides2offset = require( './../../base/strides2offset' );\nvar numel = require( './../../base/numel' );\nvar getDType = require( './../../dtype' );\nvar getShape = require( './../../shape' );\nvar getOrder = require( './../../order' );\nvar ndarray = require( './../../ctor' );\nvar emptyArray = require( '@stdlib/array/empty' );\nvar allocUnsafe = require( '@stdlib/buffer/alloc-unsafe' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Creates an uninitialized ndarray having the same shape and data type as a provided ndarray.\n*\n* @param {ndarray} x - input array\n* @param {Options} [options] - function options\n* @param {string} [options.dtype] - output array data type (overrides the input array's inferred data type)\n* @param {string} [options.order] - specifies whether the output array should be 'row-major' (C-style) or 'column-major' (Fortran-style) (overrides the input array's inferred order)\n* @param {(NonNegativeIntegerArray|NonNegativeInteger)} [options.shape] - output array shape (overrides the input array's inferred shape)\n* @param {string} [options.mode=\"throw\"] - specifies how to handle indices which exceed array dimensions\n* @param {StringArray} [options.submode=[\"throw\"]] - specifies how to handle subscripts which exceed array dimensions on a per dimension basis\n* @throws {TypeError} first argument must have a recognized data type\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} `dtype` option must be a supported ndarray data type\n* @throws {TypeError} `order` option must be a supported order\n* @throws {TypeError} `shape` option must be either a nonnegative integer or an array of nonnegative integers\n* @throws {TypeError} must provide valid options\n* @returns {ndarray} ndarray\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n*\n* var x = zeros( [ 2, 2 ] );\n* // returns \n*\n* var y = emptyLike( x );\n* // returns \n*\n* var sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* var dt = y.dtype;\n* // returns 'float64'\n*/\nfunction emptyLike( x ) {\n\tvar options;\n\tvar dtype;\n\tvar order;\n\tvar ndims;\n\tvar opts;\n\tvar buf;\n\tvar len;\n\tvar st;\n\tvar sh;\n\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray-like object. Value: `%s`.', x ) );\n\t}\n\topts = {};\n\tif ( arguments.length > 1 ) {\n\t\toptions = arguments[ 1 ];\n\t\tif ( !isPlainObject( options ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t\t}\n\t\tif ( hasOwnProp( options, 'dtype' ) ) {\n\t\t\tdtype = options.dtype;\n\t\t} else {\n\t\t\tdtype = getDType( x );\n\t\t}\n\t\tif ( hasOwnProp( options, 'shape' ) ) {\n\t\t\tsh = options.shape;\n\t\t\tif ( typeof sh === 'number' ) {\n\t\t\t\tsh = [ sh ];\n\t\t\t}\n\t\t\tif ( !isNonNegativeIntegerArray( sh ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a nonnegative integer or an array of nonnegative integers. Option: `%s`.', 'shape', sh ) );\n\t\t\t}\n\t\t} else {\n\t\t\tsh = getShape( x );\n\t\t}\n\t\tif ( hasOwnProp( options, 'order' ) ) {\n\t\t\torder = options.order;\n\t\t} else {\n\t\t\torder = getOrder( x );\n\t\t}\n\t\tif ( hasOwnProp( options, 'mode' ) ) {\n\t\t\topts.mode = options.mode;\n\t\t}\n\t\tif ( hasOwnProp( options, 'submode' ) ) {\n\t\t\topts.submode = options.submode;\n\t\t}\n\t} else {\n\t\tdtype = getDType( x );\n\t\tsh = getShape( x );\n\t\torder = getOrder( x );\n\t}\n\tndims = sh.length;\n\tif ( ndims > 0 ) {\n\t\tlen = numel( sh );\n\t\tst = shape2strides( sh, order );\n\t} else {\n\t\t// For 0-dimensional arrays, the buffer should contain a single element...\n\t\tlen = 1;\n\t\tst = [ 0 ];\n\t}\n\tif ( dtype === 'binary' ) {\n\t\tbuf = allocUnsafe( len );\n\t} else {\n\t\tbuf = emptyArray( len, dtype );\n\t}\n\treturn new ndarray( dtype, buf, sh, st, strides2offset( sh, st ), order, opts ); // eslint-disable-line max-len\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 ndarray having the same shape and data type as a provided ndarray.\n*\n* @module @stdlib/ndarray/empty-like\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n* var emptyLike = require( '@stdlib/ndarray/empty-like' );\n*\n* var x = zeros( [ 2, 2 ] );\n* // returns \n*\n* var y = emptyLike( x );\n* // returns \n*\n* var sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* var dt = y.dtype;\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Regular expression for testing whether a string is an integer string.\n*\n* @private\n* @name RE_INTEGER\n* @type {RegExp}\n*\n* @example\n* var bool = RE_INTEGER.test( '10' );\n* // returns true\n*\n* @example\n* var bool = RE_INTEGER.test( '-1' );\n* // returns true\n*\n* @example\n* var bool = RE_INTEGER.test( '0:10:2' );\n* // returns false\n*/\nvar RE_INTEGER = /^-?[0-9]+$/;\n\n\n// EXPORTS //\n\nmodule.exports = RE_INTEGER;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Regular expression for testing whether a string is a subsequence string.\n*\n* @private\n* @name RE_SUBSEQ\n* @type {RegExp}\n*\n* @example\n* var bool = RE_SUBSEQ.test( '0:10:2' );\n* // returns true\n*\n* @example\n* var bool = RE_SUBSEQ.test( '0' );\n* // returns false\n*\n* @example\n* var bool = RE_SUBSEQ.test( 'Slice(0,10,2)' );\n* // returns false\n*/\nvar RE_SUBSEQ = /:/;\n\n\n// EXPORTS //\n\nmodule.exports = RE_SUBSEQ;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 trim = require( '@stdlib/string/base/trim' );\nvar replace = require( '@stdlib/string/base/replace' );\nvar MultiSlice = require( '@stdlib/slice/multi' );\nvar str2multislice = require( '@stdlib/slice/base/str2multislice' );\nvar seq2multislice = require( '@stdlib/slice/base/seq2multislice' );\nvar str2slice = require( '@stdlib/slice/base/str2slice' );\nvar format = require( '@stdlib/string/format' );\nvar RE_INTEGER = require( './re_integer.js' );\nvar RE_SUBSEQ = require( './re_subseq.js' );\n\n\n// MAIN //\n\n/**\n* Converts a zero-dimensional ndarray indexing expression to a slice.\n*\n* @private\n* @param {Object} target - target object\n* @param {string} property - property name\n* @param {boolean} strict - boolean indicating whether to enforce strict bounds checking\n* @throws {Error} invalid slice operation\n* @throws {RangeError} number of slice dimensions must match the number of array dimensions\n* @returns {MultiSlice} multi-slice object\n*/\nfunction prop2slice( target, property ) {\n\tvar shape;\n\tvar prop;\n\tvar ch;\n\tvar s;\n\n\tprop = trim( property );\n\n\t// Retrieve the first character in order to to detect how a slice operation was specified:\n\tch = prop[ 0 ];\n\n\t// Case: slice\n\tif ( ch === 'S' ) {\n\t\t// Convert the string to a slice object:\n\t\ts = str2slice( property );\n\t\tif ( s === null ) {\n\t\t\tthrow new Error( format( 'invalid operation. Unsupported slice operation. Value: `%s`.', property ) );\n\t\t}\n\t\t// Create a multi-slice:\n\t\ts = new MultiSlice( s );\n\t}\n\t// Case: multi-slice\n\telse if ( ch === 'M' ) {\n\t\t// Convert the string to a slice object:\n\t\ts = str2multislice( prop );\n\t\tif ( s === null ) {\n\t\t\tthrow new Error( format( 'invalid operation. Unsupported slice operation. Value: `%s`.', property ) );\n\t\t}\n\t}\n\t// Case: integer\n\telse if ( RE_INTEGER.test( prop ) ) {\n\t\t// Convert the string to a numeric value:\n\t\ts = parseInt( prop, 10 );\n\n\t\t// Create a multi-slice:\n\t\ts = new MultiSlice( s );\n\t}\n\t// Case: subsequence string (e.g., ':10,1,::-1,:,-5,2::3')\n\telse if ( RE_SUBSEQ.test( prop ) ) {\n\t\tshape = target.shape;\n\t\ts = seq2multislice( prop, shape, true );\n\t\tif ( s.code ) {\n\t\t\tif ( s.code === 'ERR_SLICE_INVALID_INCREMENT' ) {\n\t\t\t\tthrow new Error( format( 'invalid operation. A subsequence increment must be a non-zero integer. Value: `%s`.', property ) );\n\t\t\t}\n\t\t\tif ( s.code === 'ERR_SLICE_INVALID_ELLIPSIS' ) {\n\t\t\t\tthrow new Error( format( 'invalid operation. A subsequence may only include a single ellipsis. Value: `%s`.', property ) );\n\t\t\t}\n\t\t\tif ( s.code === 'ERR_SLICE_INVALID_SUBSEQUENCE' ) {\n\t\t\t\tthrow new Error( format( 'invalid operation. Unsupported slice operation. Value: `%s`.', property ) );\n\t\t\t}\n\t\t\t// s.code === 'ERR_SLICE_TOO_MANY_DIMENSIONS'\n\t\t\tthrow new RangeError( format( 'invalid operation. Number of slice dimensions does not match the number of array dimensions. Array shape: (%s). Slice dimensions: %u.', shape.join( ',' ), replace( prop, /\\.\\.\\.,/, '' ).split( ',' ).length ) );\n\t\t}\n\t}\n\t// Case: empty string or ellipsis\n\telse if ( prop.length === 0 || prop === '...' ) {\n\t\ts = new MultiSlice();\n\t}\n\t// Case: non-empty string\n\telse {\n\t\tthrow new Error( format( 'invalid operation. Unsupported slice operation. Value: `%s`.', property ) );\n\t}\n\treturn s;\n}\n\n\n// EXPORTS //\n\nmodule.exports = prop2slice;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 trim = require( '@stdlib/string/base/trim' );\nvar replace = require( '@stdlib/string/base/replace' );\nvar MultiSlice = require( '@stdlib/slice/multi' );\nvar str2multislice = require( '@stdlib/slice/base/str2multislice' );\nvar seq2multislice = require( '@stdlib/slice/base/seq2multislice' );\nvar str2slice = require( '@stdlib/slice/base/str2slice' );\nvar format = require( '@stdlib/string/format' );\nvar RE_INTEGER = require( './re_integer.js' );\n\n\n// MAIN //\n\n/**\n* Converts a one-dimensional ndarray indexing expression to a slice.\n*\n* @private\n* @param {Object} target - target object\n* @param {string} property - property name\n* @param {boolean} strict - boolean indicating whether to enforce strict bounds checking\n* @throws {Error} invalid slice operation\n* @throws {RangeError} number of slice dimensions must match the number of array dimensions\n* @returns {MultiSlice} multi-slice object\n*/\nfunction prop2slice( target, property, strict ) {\n\tvar shape;\n\tvar prop;\n\tvar ch;\n\tvar s;\n\n\tprop = trim( property );\n\n\t// Retrieve the first character in order to to detect how a slice operation was specified:\n\tch = prop[ 0 ];\n\n\t// Case: slice\n\tif ( ch === 'S' ) {\n\t\t// Convert the string to a slice object:\n\t\ts = str2slice( property );\n\t\tif ( s === null ) {\n\t\t\tthrow new Error( format( 'invalid operation. Unsupported slice operation. Value: `%s`.', property ) );\n\t\t}\n\t\t// Create a multi-slice:\n\t\ts = new MultiSlice( s );\n\t}\n\t// Case: multi-slice\n\telse if ( ch === 'M' ) {\n\t\t// Convert the string to a slice object:\n\t\ts = str2multislice( prop );\n\t\tif ( s === null ) {\n\t\t\tthrow new Error( format( 'invalid operation. Unsupported slice operation. Value: `%s`.', property ) );\n\t\t}\n\t}\n\t// Case: integer\n\telse if ( RE_INTEGER.test( prop ) ) {\n\t\t// Convert the string to a numeric value:\n\t\ts = parseInt( prop, 10 );\n\n\t\t// Create a multi-slice:\n\t\ts = new MultiSlice( s );\n\t}\n\t// Case: subsequence string\n\telse if ( prop.length > 0 ) {\n\t\tshape = target.shape;\n\t\ts = seq2multislice( prop, shape, true );\n\t\tif ( s.code ) {\n\t\t\tif ( s.code === 'ERR_SLICE_INVALID_INCREMENT' ) {\n\t\t\t\tthrow new Error( format( 'invalid operation. A subsequence increment must be a non-zero integer. Value: `%s`.', property ) );\n\t\t\t}\n\t\t\tif ( s.code === 'ERR_SLICE_INVALID_ELLIPSIS' ) {\n\t\t\t\tthrow new Error( format( 'invalid operation. A subsequence may only include a single ellipsis. Value: `%s`.', property ) );\n\t\t\t}\n\t\t\tif ( s.code === 'ERR_SLICE_INVALID_SUBSEQUENCE' ) {\n\t\t\t\tthrow new Error( format( 'invalid operation. Unsupported slice operation. Value: `%s`.', property ) );\n\t\t\t}\n\t\t\tif ( s.code === 'ERR_SLICE_TOO_MANY_DIMENSIONS' ) {\n\t\t\t\tthrow new RangeError( format( 'invalid operation. Number of slice dimensions does not match the number of array dimensions. Array shape: (%s). Slice dimensions: %u.', target.shape.join( ',' ), replace( prop, /\\.\\.\\.,/, '' ).split( ',' ).length ) );\n\t\t\t}\n\t\t\t// NOTE: the following error check must come last due to fall-through when in non-strict mode...\n\t\t\tif ( s.code === 'ERR_SLICE_OUT_OF_BOUNDS' ) {\n\t\t\t\tif ( strict ) {\n\t\t\t\t\tthrow new RangeError( format( 'invalid operation. Slice exceeds array bounds. Array shape: (%s).', shape.join( ',' ) ) );\n\t\t\t\t}\n\t\t\t\t// Repeat parsing, this time allowing for out-of-bounds slices:\n\t\t\t\ts = seq2multislice( prop, shape, false );\n\t\t\t}\n\t\t}\n\t}\n\t// Case: empty string\n\telse {\n\t\tthrow new RangeError( format( 'invalid operation. Number of slice dimensions does not match the number of array dimensions. Array shape: (%s). Slice dimensions: %u.', target.shape.join( ',' ), 0 ) );\n\t}\n\treturn s;\n}\n\n\n// EXPORTS //\n\nmodule.exports = prop2slice;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 trim = require( '@stdlib/string/base/trim' );\nvar str2multislice = require( '@stdlib/slice/base/str2multislice' );\nvar seq2multislice = require( '@stdlib/slice/base/seq2multislice' );\nvar sargs2multislice = require( '@stdlib/slice/base/sargs2multislice' );\nvar format = require( '@stdlib/string/format' );\nvar RE_SUBSEQ = require( './re_subseq.js' );\n\n\n// MAIN //\n\n/**\n* Converts an n-dimensional ndarray indexing expression to a slice.\n*\n* @private\n* @param {Object} target - target object\n* @param {string} property - property name\n* @param {boolean} strict - boolean indicating whether to enforce strict bounds checking\n* @throws {Error} invalid slice operation\n* @throws {RangeError} number of slice dimensions must match the number of array dimensions\n* @returns {MultiSlice} multi-slice object\n*/\nfunction prop2slice( target, property, strict ) {\n\tvar shape;\n\tvar prop;\n\tvar ch;\n\tvar s;\n\n\tprop = trim( property );\n\n\t// Retrieve the first character in order to to detect how a slice operation was specified:\n\tch = prop[ 0 ];\n\n\t// Case: multi-slice (e.g., 'MultiSlice(Slice(0,10,2),null,2,Slice(10,5,-1))')\n\tif ( ch === 'M' ) {\n\t\ts = str2multislice( prop );\n\t\tif ( s === null ) {\n\t\t\tthrow new Error( format( 'invalid operation. Unsupported slice operation. Value: `%s`.', property ) );\n\t\t}\n\t}\n\t// Case: subsequence string (e.g., '...' or ':10,1,::-1,:,-5,2::3')\n\telse if ( RE_SUBSEQ.test( prop ) || prop === '...' ) {\n\t\tshape = target.shape;\n\t\ts = seq2multislice( prop, shape, true );\n\t\tif ( s.code ) {\n\t\t\tif ( s.code === 'ERR_SLICE_INVALID_INCREMENT' ) {\n\t\t\t\tthrow new Error( format( 'invalid operation. A subsequence increment must be a non-zero integer. Value: `%s`.', property ) );\n\t\t\t}\n\t\t\tif ( s.code === 'ERR_SLICE_INVALID_ELLIPSIS' ) {\n\t\t\t\tthrow new Error( format( 'invalid operation. A subsequence may only include a single ellipsis. Value: `%s`.', property ) );\n\t\t\t}\n\t\t\tif ( s.code === 'ERR_SLICE_INVALID_SUBSEQUENCE' ) {\n\t\t\t\tthrow new Error( format( 'invalid operation. Unsupported slice operation. Value: `%s`.', property ) );\n\t\t\t}\n\t\t\t// NOTE: the following error check must come last due to fall-through when in non-strict mode...\n\t\t\tif ( s.code === 'ERR_SLICE_OUT_OF_BOUNDS' ) {\n\t\t\t\tif ( strict ) {\n\t\t\t\t\tthrow new RangeError( format( 'invalid operation. Slice exceeds array bounds. Array shape: (%s).', shape.join( ',' ) ) );\n\t\t\t\t}\n\t\t\t\t// Repeat parsing, this time allowing for out-of-bounds slices:\n\t\t\t\ts = seq2multislice( prop, shape, false );\n\t\t\t}\n\t\t}\n\t}\n\t// Case: array syntax (e.g., [ Slice(0,10,1), null, Slice(4,null,-1) ]) or Slice or integer or arbitrary string (where the latter three are not valid for >2d arrays)\n\telse {\n\t\ts = sargs2multislice( prop );\n\t\tif ( s === null ) {\n\t\t\tthrow new Error( format( 'invalid operation. Unsupported slice operation. Value: `%s`.', property ) );\n\t\t}\n\t}\n\treturn s;\n}\n\n\n// EXPORTS //\n\nmodule.exports = prop2slice;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 propertiesIn = require( '@stdlib/utils/properties-in' );\nvar contains = require( '@stdlib/array/base/assert/contains' ).factory;\nvar ndarray = require( './../../ctor' );\nvar defaults = require( './../../defaults' );\n\n\n// MAIN //\n\n/**\n* Tests whether a property name exists on the parent prototype.\n*\n* @private\n* @name hasProperty\n* @type {Function}\n* @param {(string|symbol)} name - property name\n* @returns {boolean} boolean indicating whether the property exists on the parent prototype\n*\n* @example\n* var bool = hasProperty( 'get' );\n* // returns true\n*\n* bool = hasProperty( 'foo' );\n* // returns false\n*/\nvar hasProperty = contains( propertiesIn( new ndarray( 'generic', [ 0 ], [], [ 0 ], 0, defaults.get( 'order' ) ) ) );\n\n\n// EXPORTS //\n\nmodule.exports = hasProperty;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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' );\n\n\n// MAIN //\n\n/**\n* Returns the property value associated with a specified property.\n*\n* @private\n* @param {Object} target - target object\n* @param {(string|symbol)} property - property\n* @param {Object} receiver - the proxy object or an object inheriting from the proxy\n* @returns {*} result\n*/\nfunction getValue( target, property, receiver ) {\n\tvar value = target[ property ];\n\tif ( isFunction( value ) ) {\n\t\treturn wrapper;\n\t}\n\treturn value;\n\n\t/**\n\t* Method wrapper.\n\t*\n\t* @private\n\t* @returns {*} results\n\t*/\n\tfunction wrapper() {\n\t\tvar args;\n\t\tvar i;\n\n\t\targs = [];\n\t\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\t\targs.push( arguments[ i ] );\n\t\t}\n\t\treturn value.apply( ( this === receiver ) ? target : this, args ); // eslint-disable-line no-invalid-this\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = getValue;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 replace = require( '@stdlib/string/base/replace' );\n\n\n// MAIN //\n\n/**\n* Returns an updated error message for trapped errors.\n*\n* @private\n* @param {string} msg - error message\n* @returns {string} updated message\n*/\nfunction errMessage( msg ) {\n\treturn replace( msg, /^invalid argument/, 'invalid operation' );\n}\n\n\n// EXPORTS //\n\nmodule.exports = errMessage;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 isRangeError = require( '@stdlib/assert/is-range-error' );\nvar isTypeError = require( '@stdlib/assert/is-type-error' );\nvar isSyntaxError = require( '@stdlib/assert/is-syntax-error' );\n\n\n// MAIN //\n\n/**\n* Returns the error constructor for a provided error object.\n*\n* @private\n* @param {Error} err - error object\n* @returns {Function} error constructor\n*/\nfunction errConstructor( err ) {\n\tif ( isRangeError( err ) ) {\n\t\treturn RangeError;\n\t}\n\tif ( isTypeError( err ) ) {\n\t\treturn TypeError;\n\t}\n\tif ( isSyntaxError( err ) ) {\n\t\treturn SyntaxError;\n\t}\n\treturn Error;\n}\n\n\n// EXPORTS //\n\nmodule.exports = errConstructor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 slice = require( './../../base/slice' );\nvar errMessage = require( './error_message.js' );\nvar errConstructor = require( './error_constructor.js' );\n\n\n// MAIN //\n\n/**\n* Returns an ndarray view.\n*\n* @private\n* @param {Object} target - target object\n* @param {string} property - property name\n* @param {Object} receiver - the proxy object or an object inheriting from the proxy\n* @param {Function} prop2slice - function for converting an indexing expression to a slice\n* @throws {Error} invalid slice operation\n* @throws {RangeError} number of slice dimensions must match the number of array dimensions\n* @returns {FancyArray} result\n*/\nfunction getSlice( target, property, receiver, prop2slice ) { // eslint-disable-line stdlib/jsdoc-require-throws-tags\n\tvar strict;\n\tvar E;\n\tvar s;\n\n\tstrict = false; // TODO: support strict mode\n\ts = prop2slice( target, property, strict );\n\ttry {\n\t\treturn slice( receiver, s, strict, false );\n\t} catch ( err ) {\n\t\tE = errConstructor( err );\n\t\tthrow new E( errMessage( err.message ) );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = getSlice;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 hasProperty = require( './has_property.js' );\nvar getValue = require( './get_value.js' );\nvar getSlice = require( './get_slice.js' );\n\n\n// MAIN //\n\n/**\n* Returns a trap for retrieving property values.\n*\n* @private\n* @param {Function} prop2slice - function for converting an indexing expression to a slice\n* @returns {Function} handler\n*/\nfunction factory( prop2slice ) {\n\treturn get;\n\n\t/**\n\t* Trap for retrieving property values.\n\t*\n\t* @private\n\t* @param {Object} target - target object\n\t* @param {(string|symbol)} property - property name\n\t* @param {Object} receiver - the proxy object or an object inheriting from the proxy\n\t* @throws {Error} invalid slice operation\n\t* @throws {RangeError} number of slice dimensions must match the number of array dimensions\n\t* @returns {*} result\n\t*/\n\tfunction get( target, property, receiver ) {\n\t\tif ( hasProperty( property ) ) {\n\t\t\treturn getValue( target, property, receiver );\n\t\t}\n\t\treturn getSlice( target, property, receiver, prop2slice );\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// MAIN //\n\n/**\n* Sets the value associated with a specified property.\n*\n* @private\n* @param {Object} target - target object\n* @param {string} property - property\n* @param {*} value - new value\n* @param {Object} receiver - the proxy object or an object inheriting from the proxy\n* @returns {boolean} boolean indicating whether assignment succeeded\n*/\nfunction setValue( target, property, value ) {\n\ttarget[ property ] = value;\n\treturn true;\n}\n\n\n// EXPORTS //\n\nmodule.exports = setValue;\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 ndarray data type of the closest \"kind\" necessary for storing a provided scalar.\n*\n* @private\n* @param {number} value - real value\n* @returns {string} ndarray 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 ndarray data type of the closest \"kind\" necessary for storing a provided scalar value.\n*\n* @param {*} value - scalar value\n* @returns {string} ndarray 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, given that 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 ndarray data type of the closest \"kind\" necessary for storing a provided scalar value.\n*\n* @module @stdlib/ndarray/min-dtype\n*\n* @example\n* var minDataType = require( '@stdlib/ndarray/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) 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 hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar isPlainObject = require( '@stdlib/assert/is-plain-object' );\nvar isNumber = require( '@stdlib/assert/is-number' ).isPrimitive;\nvar isComplexLike = require( '@stdlib/assert/is-complex-like' );\nvar isAccessorArray = require( '@stdlib/array/base/assert/is-accessor-array' );\nvar accessorSetter = require( '@stdlib/array/base/accessor-setter' );\nvar setter = require( '@stdlib/array/base/setter' );\nvar buffer = require( './../../base/buffer' );\nvar ndarray = require( './../../ctor' );\nvar defaults = require( './../../defaults' );\nvar format = require( '@stdlib/string/format' );\n\n\n// VARIABLES //\n\nvar ORDER = defaults.get( 'order' );\n\n\n// MAIN //\n\n/**\n* Returns a zero-dimensional ndarray containing a provided scalar value.\n*\n* ## Notes\n*\n* - If a `dtype` option is not provided and `value`\n*\n* - is a `number`, the default data type is `'float64'`.\n* - is a complex number object, the default data type is `'complex128'`.\n* - is any other value type, the default data type is `'generic'`.\n*\n* @param {*} value - scalar value\n* @param {Options} [options] - function options\n* @param {string} [options.dtype] - output array data type\n* @param {string} [options.order=\"row-major\"] - memory layout (either row-major or column-major)\n* @param {boolean} [options.readonly=false] - boolean indicating whether an array should be read-only\n* @throws {TypeError} second argument must be an object\n* @throws {TypeError} `dtype` option must be a recognized data type\n* @returns {ndarray} ndarray\n*\n* @example\n* var x = scalar2ndarray( 1.0 );\n* // returns \n*\n* var sh = x.shape;\n* // returns []\n*\n* var dt = x.dtype;\n* // returns 'float64'\n*\n* var v = x.get();\n* // returns 1.0\n*\n* @example\n* var x = scalar2ndarray( 1.0, {\n* 'dtype': 'float32'\n* });\n* // returns \n*\n* var sh = x.shape;\n* // returns []\n*\n* var dt = x.dtype;\n* // returns 'float32'\n*\n* var v = x.get();\n* // returns 1.0\n*/\nfunction scalar2ndarray( value ) {\n\tvar options;\n\tvar opts;\n\tvar buf;\n\tvar flg;\n\tvar set;\n\tvar dt;\n\tvar v;\n\n\topts = {\n\t\t'dtype': '',\n\t\t'order': ORDER,\n\t\t'readonly': false\n\t};\n\tif ( arguments.length > 1 ) {\n\t\toptions = arguments[ 1 ];\n\t\tif ( !isPlainObject( options ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t\t}\n\t\tif ( hasOwnProp( options, 'dtype' ) ) {\n\t\t\topts.dtype = options.dtype;\n\t\t}\n\t\tif ( hasOwnProp( options, 'order' ) ) {\n\t\t\topts.order = options.order;\n\t\t}\n\t\tif ( hasOwnProp( options, 'readonly' ) ) {\n\t\t\topts.readonly = options.readonly;\n\t\t}\n\t}\n\tflg = isNumber( value );\n\tif ( opts.dtype === '' ) {\n\t\tif ( flg ) {\n\t\t\tdt = 'float64';\n\t\t} else if ( isComplexLike( value ) ) {\n\t\t\tdt = 'complex128';\n\t\t} else {\n\t\t\tdt = 'generic';\n\t\t}\n\t} else {\n\t\tdt = opts.dtype;\n\t}\n\tbuf = buffer( dt, 1 );\n\tif ( buf === null ) {\n\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a recognized data type. Option: `%s`.', 'dtype', dt ) );\n\t}\n\tif ( /^complex/.test( dt ) && flg ) {\n\t\tv = [ value, 0.0 ]; // note: we're assuming that the ComplexXXArray setter accepts an array of interleaved real and imaginary components\n\t} else {\n\t\tv = value;\n\t}\n\tif ( isAccessorArray( buf ) ) {\n\t\tset = accessorSetter( dt );\n\t} else {\n\t\tset = setter( dt );\n\t}\n\tset( buf, 0, v );\n\treturn new ndarray( dt, buf, [], [ 0 ], 0, opts.order, opts );\n}\n\n\n// EXPORTS //\n\nmodule.exports = scalar2ndarray;\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 a scalar value to a zero-dimensional ndarray.\n*\n* @module @stdlib/ndarray/from-scalar\n*\n* @example\n* var scalar2ndarray = require( '@stdlib/ndarray/from-scalar' );\n*\n* var x = scalar2ndarray( 1.0 );\n* // returns \n*\n* var sh = x.shape;\n* // returns []\n*\n* var dt = x.dtype;\n* // returns 'float64'\n*\n* var v = x.get();\n* // returns 1.0\n*\n* @example\n* var scalar2ndarray = require( '@stdlib/ndarray/from-scalar' );\n*\n* var x = scalar2ndarray( 1.0, {\n* 'dtype': 'float32'\n* });\n* // returns \n*\n* var sh = x.shape;\n* // returns []\n*\n* var dt = x.dtype;\n* // returns 'float32'\n*\n* var v = x.get();\n* // returns 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 sliceAssign = require( './../../base/slice-assign' );\nvar isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );\nvar isNumber = require( '@stdlib/assert/is-number' ).isPrimitive;\nvar isInteger = require( '@stdlib/assert/is-integer' ).isPrimitive;\nvar isComplexLike = require( '@stdlib/assert/is-complex-like' );\nvar isComplexDataType = require( './../../base/assert/is-complex-floating-point-data-type' );\nvar isFloatingDataType = require( './../../base/assert/is-floating-point-data-type' );\nvar isUnsignedIntegerDataType = require( './../../base/assert/is-unsigned-integer-data-type' );\nvar isSignedIntegerDataType = require( './../../base/assert/is-signed-integer-data-type' );\nvar isSafeCast = require( './../../base/assert/is-safe-data-type-cast' );\nvar INT8_MAX = require( '@stdlib/constants/int8/max' );\nvar INT16_MAX = require( '@stdlib/constants/int16/max' );\nvar INT32_MAX = require( '@stdlib/constants/int32/max' );\nvar minDataType = require( './../../min-dtype' );\nvar complexDataType = require( '@stdlib/complex/dtype' );\nvar scalar2ndarray = require( './../../from-scalar' );\nvar format = require( '@stdlib/string/format' );\nvar errMessage = require( './error_message.js' );\nvar errConstructor = require( './error_constructor.js' );\n\n\n// FUNCTIONS //\n\n/**\n* Returns an options object for creating an ndarray from a scalar value.\n*\n* @private\n* @param {string} dtype - output array data type\n* @returns {Object} options\n*/\nfunction options( dtype ) {\n\treturn {\n\t\t'dtype': dtype\n\t};\n}\n\n\n// MAIN //\n\n/**\n* Sets element values belonging to the ndarray view specified by an indexing expression.\n*\n* @private\n* @param {Object} target - target object\n* @param {string} property - indexing expression\n* @param {*} value - new value\n* @param {Object} receiver - the proxy object or an object inheriting from the proxy\n* @param {Function} prop2slice - function for converting an indexing expression to a slice\n* @throws {Error} invalid slice operation\n* @throws {RangeError} number of slice dimensions must match the number of array dimensions\n* @throws {Error} assigned value must be broadcast compatible with target array view\n* @throws {TypeError} assigned value cannot be safely cast to the target array data type\n* @throws {TypeError} target array must have a supported data type\n* @returns {boolean} boolean indicating whether assignment succeeded\n*/\nfunction setSlice( target, property, value, receiver, prop2slice ) { // eslint-disable-line stdlib/jsdoc-require-throws-tags\n\tvar strict;\n\tvar vdt;\n\tvar dt;\n\tvar E;\n\tvar s;\n\n\tif ( !isndarrayLike( value ) ) {\n\t\tdt = target.dtype;\n\n\t\t// If the target array data type is \"generic\", we can just go ahead and \"cast\" to the target array data type...\n\t\tif ( dt === 'generic' ) {\n\t\t\tvalue = scalar2ndarray( value, options( dt ) );\n\t\t}\n\t\t// If the input value is real-valued number, we need to inspect the value to determine whether we can safely cast the value to the target array data type...\n\t\telse if ( isNumber( value ) ) {\n\t\t\t// If the target array has a floating-point data type, we can just go ahead and cast the input scalar to the target array data type...\n\t\t\tif ( isFloatingDataType( dt ) ) {\n\t\t\t\tvalue = scalar2ndarray( value, options( dt ) );\n\t\t\t}\n\t\t\t// If the target array has an unsigned integer data type, then the assigned value must be a compatible nonnegative integer value...\n\t\t\telse if ( isUnsignedIntegerDataType( dt ) ) {\n\t\t\t\tvdt = minDataType( value );\n\t\t\t\tif ( isSafeCast( vdt, dt ) ) {\n\t\t\t\t\tvalue = scalar2ndarray( value, options( dt ) );\n\t\t\t\t} else {\n\t\t\t\t\tthrow new TypeError( format( 'invalid operation. Assigned value cannot be safely cast to the target array data type. Data types: [%s, %s].', vdt, dt ) );\n\t\t\t\t}\n\t\t\t}\n\t\t\t// If the target array has a signed integer data type, then the assigned value must be a compatible integer value...\n\t\t\telse if ( isSignedIntegerDataType( dt ) ) {\n\t\t\t\tif ( !isInteger( value ) ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid operation. Assigned value cannot be safely cast to the target array data type. Data types: [%s, %s].', minDataType( value ), dt ) );\n\t\t\t\t}\n\t\t\t\t// Manually resolve the minimum data type of the closest \"kind\" necessary for storing a scalar value, as `minDataType()` defaults to unsigned integer data types when a scalar value is greater than or equal to zero...\n\t\t\t\tif ( value < 0 ) {\n\t\t\t\t\tvdt = minDataType( value );\n\t\t\t\t} else if ( value <= INT8_MAX ) { // TODO: consider moving this logic to `@stdlib/ndarray/base/min-signed-intger-dtype` where the interface can assume that `value` is integer-valued\n\t\t\t\t\tvdt = 'int8';\n\t\t\t\t} else if ( value <= INT16_MAX ) {\n\t\t\t\t\tvdt = 'int16';\n\t\t\t\t} else if ( value <= INT32_MAX ) {\n\t\t\t\t\tvdt = 'int32';\n\t\t\t\t} else {\n\t\t\t\t\tvdt = 'float64';\n\t\t\t\t}\n\t\t\t\tif ( isSafeCast( vdt, dt ) ) {\n\t\t\t\t\tvalue = scalar2ndarray( value, options( dt ) );\n\t\t\t\t} else {\n\t\t\t\t\tthrow new TypeError( format( 'invalid operation. Assigned value cannot be safely cast to the target array data type. Data types: [%s, %s].', vdt, dt ) );\n\t\t\t\t}\n\t\t\t}\n\t\t\t// If the target array has \"binary\" data type, then the assigned value must be a compatible nonnegative integer value...\n\t\t\telse if ( dt === 'binary' ) {\n\t\t\t\tvdt = minDataType( value );\n\t\t\t\tif ( vdt === 'uint8' ) {\n\t\t\t\t\tvalue = scalar2ndarray( value, options( dt ) );\n\t\t\t\t} else {\n\t\t\t\t\tthrow new TypeError( format( 'invalid operation. Assigned value cannot be safely cast to the target array data type. Data types: [%s, %s].', vdt, dt ) );\n\t\t\t\t}\n\t\t\t}\n\t\t\t// If we reach this point, we must be dealing with an unexpected target array data type...\n\t\t\telse {\n\t\t\t\t// Raise an exception in order to flag that, in order to perform assignment, we need to add explicit support for additional data types:\n\t\t\t\tthrow new TypeError( format( 'invalid operation. Unsupported target array data type. Data type: `%s`.', dt ) );\n\t\t\t}\n\t\t}\n\t\t// If the target array is not \"generic\" and the input value is a complex number, then the target array data type must also have a complex number data type...\n\t\telse if ( isComplexLike( value ) ) {\n\t\t\tif ( !isComplexDataType( dt ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid operation. Assigned value cannot be safely cast to the target array data type. Data types: [%s, %s].', complexDataType( value ), dt ) );\n\t\t\t}\n\t\t\tvalue = scalar2ndarray( value, options( dt ) );\n\t\t}\n\t\t// If the target array is not \"generic\" and the input value is neither a real- or complex-valued number, raise an exception in order to flag that, in order to perform assignment, we need to add explicit support for additional data types...\n\t\telse {\n\t\t\tthrow new TypeError( format( 'invalid operation. Assigned value cannot be safely cast to the target array data type. Data types: [%s, %s].', typeof value, dt ) );\n\t\t}\n\t}\n\tstrict = false; // TODO: support strict mode\n\ts = prop2slice( target, property, strict );\n\ttry {\n\t\tsliceAssign( value, receiver, s, strict );\n\t\treturn true;\n\t} catch ( err ) {\n\t\tE = errConstructor( err );\n\t\tthrow new E( errMessage( err.message ) );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = setSlice;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 hasProperty = require( './has_property.js' );\nvar setValue = require( './set_value.js' );\nvar setSlice = require( './set_slice.js' );\n\n\n// MAIN //\n\n/**\n* Returns a trap for setting property values.\n*\n* @private\n* @param {Function} prop2slice - function for converting an indexing expression to a slice\n* @returns {Function} handler\n*/\nfunction factory( prop2slice ) {\n\treturn set;\n\n\t/**\n\t* Trap for setting property values.\n\t*\n\t* @private\n\t* @param {Object} target - target object\n\t* @param {(string|symbol)} property - property name\n\t* @param {*} value - new value\n\t* @param {Object} receiver - the proxy object or an object inheriting from the proxy\n\t* @throws {Error} invalid slice operation\n\t* @throws {RangeError} number of slice dimensions must match the number of array dimensions\n\t* @throws {Error} assigned value must be broadcast compatible with output array view\n\t* @throws {TypeError} assigned value cannot be safely cast to the output array data type\n\t* @returns {boolean} boolean indicating whether assignment succeeded\n\t*/\n\tfunction set( target, property, value, receiver ) {\n\t\tif ( hasProperty( property ) ) {\n\t\t\treturn setValue( target, property, value );\n\t\t}\n\t\treturn setSlice( target, property, value, receiver, prop2slice );\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/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar parent = require( './../../ctor' ); // eslint-disable-line stdlib/no-redeclare\nvar inherit = require( '@stdlib/utils/inherit' );\nvar Proxy = require( '@stdlib/proxy/ctor' );\nvar prop2slice0d = require( './prop2slice.0d.js' );\nvar prop2slice1d = require( './prop2slice.1d.js' );\nvar prop2slicend = require( './prop2slice.nd.js' );\nvar get = require( './get.js' );\nvar set = require( './set.js' );\n\n\n// VARIABLES //\n\nvar get0d = get( prop2slice0d );\nvar set0d = set( prop2slice0d );\nvar get1d = get( prop2slice1d );\nvar set1d = set( prop2slice1d );\nvar getnd = get( prop2slicend );\nvar setnd = set( prop2slicend );\n\n\n// MAIN //\n\n/**\n* Fancy ndarray constructor.\n*\n* @constructor\n* @param {string} dtype - data type\n* @param {Collection} buffer - data buffer\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - array strides\n* @param {NonNegativeInteger} offset - index offset\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @param {Options} [options] - function options\n* @param {string} [options.mode=\"throw\"] - specifies how to handle indices which exceed array dimensions\n* @param {StringArray} [options.submode=[\"throw\"]] - specifies how to handle subscripts which exceed array dimensions on a per dimension basis\n* @param {boolean} [options.readonly=false] - boolean indicating whether an array should be read-only\n* @throws {TypeError} `dtype` argument must be a supported ndarray data type\n* @throws {TypeError} `buffer` argument must be an array-like object, typed-array-like, or a Buffer\n* @throws {TypeError} `buffer` argument `get` and `set` properties must be functions\n* @throws {TypeError} `shape` argument must be an array-like object containing nonnegative integers\n* @throws {Error} `shape` argument length must equal the number of dimensions\n* @throws {TypeError} `strides` argument must be an array-like object containing integers\n* @throws {Error} `strides` argument length must equal the number of dimensions (except for zero-dimensional arrays; in which case, the `strides` argument length must be equal to `1`)\n* @throws {Error} for zero-dimensional ndarrays, the `strides` argument must contain a single element equal to `0`\n* @throws {TypeError} `offset` argument must be a nonnegative integer\n* @throws {TypeError} `order` argument must be a supported ndarray order\n* @throws {Error} `buffer` argument must be compatible with specified meta data\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {RangeError} too many dimensions\n* @returns {FancyArray} FancyArray instance\n*\n* @example\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var out = new FancyArray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*/\nfunction FancyArray( dtype, buffer, shape, strides, offset, order, options ) {\n\tvar handlers;\n\tvar nargs;\n\tvar ndims;\n\n\tnargs = arguments.length;\n\tif ( !( this instanceof FancyArray ) ) {\n\t\tif ( nargs < 7 ) {\n\t\t\treturn new FancyArray( dtype, buffer, shape, strides, offset, order );\n\t\t}\n\t\treturn new FancyArray( dtype, buffer, shape, strides, offset, order, options );\n\t}\n\t// Call the parent constructor:\n\tparent.call( this, dtype, buffer, shape, strides, offset, order, ( nargs < 7 ) ? {} : options );\n\n\tif ( Proxy ) { // NOTE: cannot use `@stdlib/assert/has-proxy-support` here, as that API uses code evaluation and might violate CSPs\n\t\tndims = shape.length;\n\t\thandlers = {};\n\t\tif ( ndims === 0 ) {\n\t\t\thandlers.get = get0d;\n\t\t\thandlers.set = set0d;\n\t\t} else if ( ndims === 1 ) {\n\t\t\thandlers.get = get1d;\n\t\t\thandlers.set = set1d;\n\t\t} else {\n\t\t\thandlers.get = getnd;\n\t\t\thandlers.set = setnd;\n\t\t}\n\t\treturn new Proxy( this, handlers );\n\t}\n\t// TODO: replace with `@stdlib/console/warn` (or equivalent once available)\n\tconsole.warn( 'WARNING: Proxy objects are not supported in the current environment. Some `FancyArray` functionality may not be available.' ); // eslint-disable-line no-console\n\treturn this;\n}\n\n// Inherit from the parent constructor:\ninherit( FancyArray, parent );\n\n/**\n* Constructor name.\n*\n* @name name\n* @memberof FancyArray\n* @type {string}\n* @default 'ndarray'\n*\n* @example\n* var str = FancyArray.name;\n* // returns 'ndarray'\n*/\nsetReadOnly( FancyArray, 'name', 'ndarray' );\n\n\n// EXPORTS //\n\nmodule.exports = FancyArray;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Fancy array constructor.\n*\n* @module @stdlib/ndarray/fancy\n*\n* @example\n* var FancyArray = require( '@stdlib/ndarray/fancy' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var out = new FancyArray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "{\n\t\"mode\": \"throw\",\n\t\"order\": \"row-major\"\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 isObject = require( '@stdlib/assert/is-plain-object' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar isOrder = require( './../../base/assert/is-order' );\nvar isIndexMode = require( './../../base/assert/is-index-mode' );\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.mode] - specifies how to handle a linear index which exceeds array dimensions\n* @param {string} [options.order] - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'mode': 'throw',\n* 'order': 'column-major'\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, 'mode' ) ) {\n\t\topts.mode = options.mode;\n\t\tif ( !isIndexMode( opts.mode ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a supported/recognized mode. Option: `%s`.', 'mode', opts.mode ) );\n\t\t}\n\t}\n\tif ( hasOwnProp( options, 'order' ) ) {\n\t\topts.order = options.order;\n\t\tif ( !isOrder( opts.order ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a supported/recognized order. Option: `%s`.', 'order', opts.order ) );\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// MODULES //\n\nvar isNonNegativeIntegerArray = require( '@stdlib/assert/is-nonnegative-integer-array' ).primitives;\nvar isInteger = require( '@stdlib/assert/is-integer' ).isPrimitive;\nvar shape2strides = require( './../../base/shape2strides' );\nvar getSubscripts = require( './../../base/ind2sub' );\nvar format = require( '@stdlib/string/format' );\nvar defaults = require( './defaults.json' );\nvar validate = require( './validate.js' );\n\n\n// MAIN //\n\n/**\n* Converts a linear index to an array of subscripts.\n*\n* ## Notes\n*\n* - The function accepts the following \"modes\":\n*\n* - **throw**: throw an error when a linear index exceeds array dimensions.\n* - **normalize**: normalize negative linear indices and throw an error when a linear index exceeds array dimensions.\n* - **wrap**: wrap around a linear index exceeding array dimensions using modulo arithmetic.\n* - **clamp**: set a linear index exceeding array dimensions to either `0` (minimum linear index) or the maximum linear index.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {integer} idx - linear index\n* @param {Options} [options] - function options\n* @param {string} [options.mode=\"throw\"] - specifies how to handle a linear index which exceeds array dimensions\n* @param {string} [options.order=\"row-major\"] - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @throws {TypeError} shape argument must be an array-like object containing nonnegative integers\n* @throws {TypeError} linear index argument must be integer valued\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {RangeError} must provide a linear index which does not exceed array dimensions\n* @returns {NonNegativeIntegerArray} subscripts\n*\n* @example\n* var s = ind2sub( [ 3, 3, 3 ], 17 );\n* // returns [ 1, 2, 2 ]\n*/\nfunction ind2sub( shape, idx, options ) {\n\tvar opts;\n\tvar err;\n\n\topts = {};\n\topts.mode = defaults.mode;\n\topts.order = defaults.order;\n\tif ( arguments.length > 2 ) {\n\t\terr = validate( opts, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\tif ( !isNonNegativeIntegerArray( shape ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Shape argument must be an array-like object containing nonnegative integers. Value: `%s`.', shape ) );\n\t}\n\tif ( !isInteger( idx ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Linear index must be integer valued. Value: `%s`.', idx ) );\n\t}\n\t// Note: strides are positive, so offset is always zero\n\treturn getSubscripts( shape, shape2strides( shape, opts.order ), 0, opts.order, idx, opts.mode ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nmodule.exports = ind2sub;\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 isNonNegativeIntegerArray = require( '@stdlib/assert/is-nonnegative-integer-array' ).primitives;\nvar isInteger = require( '@stdlib/assert/is-integer' ).isPrimitive;\nvar shape2strides = require( './../../base/shape2strides' );\nvar getSubscripts = require( './../../base/ind2sub' ).assign;\nvar format = require( '@stdlib/string/format' );\nvar defaults = require( './defaults.json' );\nvar validate = require( './validate.js' );\n\n\n// MAIN //\n\n/**\n* Converts a linear index to an array of subscripts and assigns results to a provided output array.\n*\n* ## Notes\n*\n* - The function accepts the following \"modes\":\n*\n* - **throw**: throw an error when a linear index exceeds array dimensions.\n* - **normalize**: normalize negative linear indices and throw an error when a linear index exceeds array dimensions.\n* - **wrap**: wrap around a linear index exceeding array dimensions using modulo arithmetic.\n* - **clamp**: set a linear index exceeding array dimensions to either `0` (minimum linear index) or the maximum linear index.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {integer} idx - linear index\n* @param {Options} [options] - function options\n* @param {string} [options.mode=\"throw\"] - specifies how to handle a linear index which exceeds array dimensions\n* @param {string} [options.order=\"row-major\"] - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @param {(Array|TypedArray|Object)} out - output array\n* @throws {TypeError} output argument must be either an array, typed array, or an object\n* @throws {TypeError} shape argument must be an array-like object containing nonnegative integers\n* @throws {TypeError} linear index argument must be integer valued\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {RangeError} must provide a linear index which does not exceed array dimensions\n* @returns {NonNegativeIntegerArray} subscripts\n*\n* @example\n* var shape = [ 3, 3, 3 ];\n* var out = [ 0, 0, 0 ];\n*\n* var s = ind2sub( shape, 17, out );\n* // returns [ 1, 2, 2 ]\n*\n* var bool = ( s === out );\n* // returns true\n*/\nfunction ind2sub( shape, idx, options, out ) {\n\tvar opts;\n\tvar dest;\n\tvar err;\n\n\topts = {};\n\topts.mode = defaults.mode;\n\topts.order = defaults.order;\n\tif ( arguments.length === 4 ) {\n\t\terr = validate( opts, arguments[ 2 ] );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t\tif ( typeof out !== 'object' || out === null ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Output argument must be either an array, typed array, or object. Value: `%s`.', out ) );\n\t\t}\n\t\tdest = out;\n\t} else {\n\t\tdest = options;\n\t\tif ( typeof dest !== 'object' || dest === null ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Output argument must be either an array, typed array, or object. Value: `%s`.', dest ) );\n\t\t}\n\t}\n\tif ( !isNonNegativeIntegerArray( shape ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Shape argument must be an array-like object containing nonnegative integers. Value: `%s`.', shape ) );\n\t}\n\tif ( !isInteger( idx ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Linear index must be integer valued. Value: `%s`.', idx ) );\n\t}\n\t// Note: strides are positive, so offset is always zero\n\treturn getSubscripts( shape, shape2strides( shape, opts.order ), 0, opts.order, idx, opts.mode, dest ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nmodule.exports = ind2sub;\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 a linear index to an array of subscripts.\n*\n* @module @stdlib/ndarray/ind2sub\n*\n* @example\n* var ind2sub = require( '@stdlib/ndarray/ind2sub' );\n*\n* var s = ind2sub( [ 3, 3, 3 ], 17 );\n* // returns [ 1, 2, 2 ]\n*\n* @example\n* var ind2sub = require( '@stdlib/ndarray/ind2sub' );\n*\n* var shape = [ 3, 3, 3 ];\n* var out = [ 0, 0, 0 ];\n*\n* var s = ind2sub.assign( shape, 17, out );\n* // returns [ 1, 2, 2 ]\n*\n* var bool = ( s === 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// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar isPlainObject = require( '@stdlib/assert/is-plain-object' );\nvar isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive;\nvar isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );\nvar isReadOnly = require( './../../../base/assert/is-read-only' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar iteratorSymbol = require( '@stdlib/symbol/iterator' );\nvar zeros = require( '@stdlib/array/base/zeros' );\nvar getShape = require( './../../../shape' );\nvar numel = require( './../../../base/numel' );\nvar slice = require( './../../../base/slice' );\nvar nextCartesianIndex = require( './../../../base/next-cartesian-index' ).assign;\nvar args2multislice = require( '@stdlib/slice/base/args2multislice' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns an iterator which returns `[index, column]` pairs for each column in a matrix (or stack of matrices).\n*\n* @param {ndarray} x - input array\n* @param {Options} [options] - function options\n* @param {boolean} [options.readonly=true] - boolean indicating whether returned views should be read-only\n* @throws {TypeError} first argument must be an ndarray\n* @throws {TypeError} first argument must have at least two dimensions\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {Error} cannot write to a read-only array\n* @returns {Iterator} iterator\n*\n* @example\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var x = array( [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 5, 6 ], [ 7, 8 ] ] ] );\n* // returns \n*\n* var iter = nditerColumnEntries( x );\n*\n* var v = iter.next().value;\n* // returns [...]\n*\n* var idx = v[ 0 ];\n* // returns [ 0, null, 0 ]\n*\n* var col = ndarray2array( v[ 1 ] );\n* // returns [ 1, 3 ]\n*\n* v = iter.next().value;\n* // returns [...]\n*\n* idx = v[ 0 ];\n* // returns [ 0, null, 1 ]\n*\n* col = ndarray2array( v[ 1 ] );\n* // returns [ 2, 4 ]\n*\n* // ...\n*/\nfunction nditerColumnEntries( x ) {\n\tvar options;\n\tvar shape;\n\tvar ndims;\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar idx;\n\tvar dim;\n\tvar S0;\n\tvar N;\n\tvar i;\n\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray. Value: `%s`.', x ) );\n\t}\n\topts = {\n\t\t'writable': false\n\t};\n\tif ( arguments.length > 1 ) {\n\t\toptions = arguments[ 1 ];\n\t\tif ( !isPlainObject( options ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t\t}\n\t\tif ( hasOwnProp( options, 'readonly' ) ) {\n\t\t\tif ( !isBoolean( options.readonly ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'readonly', options.readonly ) );\n\t\t\t}\n\t\t\topts.writable = !options.readonly;\n\t\t\tif ( opts.writable && isReadOnly( x ) ) {\n\t\t\t\tthrow new Error( format( 'invalid option. Cannot write to read-only array.' ) );\n\t\t\t}\n\t\t}\n\t}\n\t// Retrieve input array meta data:\n\tshape = getShape( x );\n\tndims = shape.length;\n\n\t// Ensure that the input array has sufficient dimensions...\n\tif ( ndims < 2 ) {\n\t\tthrow new TypeError( 'invalid argument. First argument must be an ndarray having at least two dimensions.' );\n\t}\n\n\t// Check whether the input array is empty...\n\tN = numel( shape );\n\tif ( N === 0 ) {\n\t\tFLG = true;\n\t}\n\t// Compute the number of columns across all stacks of matrices:\n\tN /= shape[ ndims-2 ];\n\tdim = ndims - 1;\n\tS0 = shape[ dim ];\n\n\t// Initialize a counter:\n\ti = -1;\n\n\t// Initialize an index array:\n\tidx = zeros( ndims );\n\n\t// Set the second-to-last element to `null` to indicate that we want a full \"slice\" for the second-to-last dimension:\n\tidx[ ndims-2 ] = null;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\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\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 indices;\n\t\tvar s;\n\t\tvar j;\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\t// Cache the current state of the index array:\n\t\tindices = idx.slice();\n\n\t\t// Create a multi-slice for the current view:\n\t\ts = args2multislice( idx );\n\n\t\t// Update the index array:\n\t\tj = ( idx[ dim ] + 1 ) % S0;\n\t\tidx[ dim ] = j;\n\t\tif ( j === 0 ) {\n\t\t\t// If we've iterated over all the columns in the current matrix, move on to the next matrix in the stack:\n\t\t\tidx = nextCartesianIndex( shape, 'row-major', idx, dim-2, idx );\n\t\t}\n\t\t// Return the next row entry:\n\t\treturn {\n\t\t\t'value': [ indices, slice( x, s, true, opts.writable ) ],\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 nditerColumnEntries( x, opts );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nditerColumnEntries;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 returns `[index, column]` pairs for each column in a matrix (or stack of matrices).\n*\n* @module @stdlib/ndarray/iter/column-entries\n*\n* @example\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var array = require( '@stdlib/ndarray/array' );\n* var nditerColumnEntries = require( '@stdlib/ndarray/iter/column-entries' );\n*\n* var x = array( [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 5, 6 ], [ 7, 8 ] ] ] );\n* // returns \n*\n* var iter = nditerColumnEntries( x );\n*\n* var v = iter.next().value;\n* // returns [...]\n*\n* var idx = v[ 0 ];\n* // returns [ 0, null, 0 ]\n*\n* var col = ndarray2array( v[ 1 ] );\n* // returns [ 1, 3 ]\n*\n* v = iter.next().value;\n* // returns [...]\n*\n* idx = v[ 0 ];\n* // returns [ 0, null, 1 ]\n*\n* col = ndarray2array( v[ 1 ] );\n* // returns [ 2, 4 ]\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 isPlainObject = require( '@stdlib/assert/is-plain-object' );\nvar isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive;\nvar isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );\nvar isReadOnly = require( './../../../base/assert/is-read-only' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar iteratorSymbol = require( '@stdlib/symbol/iterator' );\nvar zeros = require( '@stdlib/array/base/zeros' );\nvar getShape = require( './../../../shape' );\nvar numel = require( './../../../base/numel' );\nvar slice = require( './../../../base/slice' );\nvar nextCartesianIndex = require( './../../../base/next-cartesian-index' ).assign;\nvar args2multislice = require( '@stdlib/slice/base/args2multislice' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iterates over each column in a matrix (or stack of matrices).\n*\n* @param {ndarray} x - input value\n* @param {Options} [options] - function options\n* @param {boolean} [options.readonly=true] - boolean indicating whether returned views should be read-only\n* @throws {TypeError} first argument must be an ndarray\n* @throws {TypeError} first argument must have at least two dimensions\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {Error} cannot write to a read-only array\n* @returns {Iterator} iterator\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n*\n* var x = array( [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 5, 6 ], [ 7, 8 ] ] ] );\n* // returns \n*\n* var iter = nditerColumns( x );\n*\n* var v = iter.next().value;\n* // returns \n*\n* var arr = ndarray2array( v );\n* // returns [ 1, 3 ]\n*\n* v = iter.next().value;\n* // returns \n*\n* arr = ndarray2array( v );\n* // returns [ 2, 4 ]\n*\n* v = iter.next().value;\n* // returns \n*\n* arr = ndarray2array( v );\n* // returns [ 5, 7 ]\n*\n* // ...\n*/\nfunction nditerColumns( x ) {\n\tvar options;\n\tvar shape;\n\tvar ndims;\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar idx;\n\tvar dim;\n\tvar S0;\n\tvar N;\n\tvar i;\n\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray. Value: `%s`.', x ) );\n\t}\n\topts = {\n\t\t'writable': false\n\t};\n\tif ( arguments.length > 1 ) {\n\t\toptions = arguments[ 1 ];\n\t\tif ( !isPlainObject( options ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t\t}\n\t\tif ( hasOwnProp( options, 'readonly' ) ) {\n\t\t\tif ( !isBoolean( options.readonly ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'readonly', options.readonly ) );\n\t\t\t}\n\t\t\topts.writable = !options.readonly;\n\t\t\tif ( opts.writable && isReadOnly( x ) ) {\n\t\t\t\tthrow new Error( format( 'invalid option. Cannot write to read-only array.' ) );\n\t\t\t}\n\t\t}\n\t}\n\t// Retrieve input array meta data:\n\tshape = getShape( x );\n\tndims = shape.length;\n\n\t// Ensure that the input array has sufficient dimensions...\n\tif ( ndims < 2 ) {\n\t\tthrow new TypeError( 'invalid argument. First argument must be an ndarray having at least two dimensions.' );\n\t}\n\t// Check whether the input array is empty...\n\tN = numel( shape );\n\tif ( N === 0 ) {\n\t\tFLG = true;\n\t}\n\t// Compute the number of columns across all stacks of matrices:\n\tN /= shape[ ndims-2 ];\n\tdim = ndims - 1;\n\tS0 = shape[ dim ];\n\n\t// Initialize a counter:\n\ti = -1;\n\n\t// Initialize an index array for generating slices:\n\tidx = zeros( ndims );\n\n\t// Set the second-to-last element to `null` to indicate that we want a full \"slice\" for the second-to-last dimension:\n\tidx[ ndims-2 ] = null;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\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\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 s;\n\t\tvar j;\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\t// Create a multi-slice for the current view:\n\t\ts = args2multislice( idx );\n\n\t\t// Update the index array:\n\t\tj = ( idx[ dim ] + 1 ) % S0;\n\t\tidx[ dim ] = j;\n\t\tif ( j === 0 ) {\n\t\t\t// If we've iterated over all the columns in the current matrix, move on to the next matrix in the stack:\n\t\t\tidx = nextCartesianIndex( shape, 'row-major', idx, dim-2, idx );\n\t\t}\n\t\t// Return the next column slice:\n\t\treturn {\n\t\t\t'value': slice( x, s, true, opts.writable ),\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 nditerColumns( x, opts );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nditerColumns;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 iterates over each column in a matrix (or stack of matrices).\n*\n* @module @stdlib/ndarray/iter/columns\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var nditerColumns = require( '@stdlib/ndarray/iter/columns' );\n*\n* var x = array( [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 5, 6 ], [ 7, 8 ] ] ] );\n* // returns \n*\n* var iter = nditerColumns( x );\n*\n* var v = iter.next().value;\n* // returns \n*\n* var arr = ndarray2array( v );\n* // returns [ 1, 3 ]\n*\n* v = iter.next().value;\n* // returns \n*\n* arr = ndarray2array( v );\n* // returns [ 2, 4 ]\n*\n* v = iter.next().value;\n* // returns \n*\n* arr = ndarray2array( v );\n* // returns [ 5, 7 ]\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 isPlainObject = require( '@stdlib/assert/is-plain-object' );\nvar isOrder = require( './../../../base/assert/is-order' );\nvar isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar iteratorSymbol = require( '@stdlib/symbol/iterator' );\nvar zeros = require( '@stdlib/array/base/zeros' );\nvar getShape = require( './../../../shape' );\nvar numel = require( './../../../base/numel' );\nvar nextCartesianIndex = require( './../../../base/next-cartesian-index' ).assign;\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns an iterator which returns `[index, value]` pairs for each element in a provided ndarray.\n*\n* @param {ndarray} x - input array\n* @param {Options} [options] - function options\n* @param {boolean} [options.order='row-major'] - index iteration order\n* @throws {TypeError} first argument must be an ndarray\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {Iterator} iterator\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var x = array( [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 5, 6 ], [ 7, 8 ] ] ] );\n* // returns \n*\n* var iter = nditerEntries( x );\n*\n* var v = iter.next().value;\n* // returns [ [ 0, 0, 0 ], 1 ]\n*\n* v = iter.next().value;\n* // returns [ [ 0, 0, 1 ], 2 ]\n*\n* v = iter.next().value;\n* // returns [ [ 0, 1, 0 ], 3 ]\n*\n* // ...\n*/\nfunction nditerEntries( x ) {\n\tvar options;\n\tvar shape;\n\tvar ndims;\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar idx;\n\tvar dim;\n\tvar N;\n\tvar i;\n\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray. Value: `%s`.', x ) );\n\t}\n\topts = {\n\t\t'order': x.order\n\t};\n\tif ( arguments.length > 1 ) {\n\t\toptions = arguments[ 1 ];\n\t\tif ( !isPlainObject( options ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t\t}\n\t\tif ( hasOwnProp( options, 'order' ) ) {\n\t\t\tif ( !isOrder( options.order ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a recognized order. Option: `%s`.', 'order', options.order ) );\n\t\t\t}\n\t\t\topts.order = options.order;\n\t\t}\n\t}\n\t// Retrieve input array meta data:\n\tshape = getShape( x );\n\tndims = shape.length;\n\n\t// Check whether the input array is empty...\n\tN = numel( shape );\n\tif ( N === 0 ) {\n\t\tFLG = true;\n\t}\n\t// Resolve the dimension in which indices iterate fastest:\n\tif ( opts.order === 'row-major' ) {\n\t\tdim = ndims - 1;\n\t} else {\n\t\tdim = 0;\n\t}\n\t// Initialize a counter:\n\ti = -1;\n\n\t// Initialize an index array:\n\tidx = zeros( ndims );\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\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\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\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\tif ( i > 0 ) {\n\t\t\tidx = nextCartesianIndex( shape, opts.order, idx, dim, idx );\n\t\t}\n\t\t// Return the next set of indices:\n\t\treturn {\n\t\t\t'value': [ idx.slice(), x.get.apply( x, idx ) ],\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 nditerEntries( x, opts );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nditerEntries;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 returns `[index, value]` pairs for each element in a provided ndarray.\n*\n* @module @stdlib/ndarray/iter/entries\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n* var nditerEntries = require( '@stdlib/ndarray/iter/entries' );\n*\n* var x = array( [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 5, 6 ], [ 7, 8 ] ] ] );\n* // returns \n*\n* var iter = nditerEntries( x );\n*\n* var v = iter.next().value;\n* // returns [ [ 0, 0, 0 ], 1 ]\n*\n* v = iter.next().value;\n* // returns [ [ 0, 0, 1 ], 2 ]\n*\n* v = iter.next().value;\n* // returns [ [ 0, 1, 0 ], 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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 isPlainObject = require( '@stdlib/assert/is-plain-object' );\nvar isOrder = require( './../../../base/assert/is-order' );\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar iteratorSymbol = require( '@stdlib/symbol/iterator' );\nvar zeros = require( '@stdlib/array/base/zeros' );\nvar numel = require( './../../../base/numel' );\nvar nextCartesianIndex = require( './../../../base/next-cartesian-index' ).assign;\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns an iterator which returns indices for use in indexing into an ndarray having a specified shape.\n*\n* @param {NonNegativeIntegerArray} shape - input shape\n* @param {Options} [options] - function options\n* @param {boolean} [options.order='row-major'] - index iteration order\n* @throws {TypeError} first argument must be an array containing nonnegative integers\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {Iterator} iterator\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var x = array( [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 5, 6 ], [ 7, 8 ] ] ] );\n* // returns \n*\n* var iter = nditerIndices( x.shape );\n*\n* var v = iter.next().value;\n* // returns [ 0, 0, 0 ]\n*\n* v = iter.next().value;\n* // returns [ 0, 0, 1 ]\n*\n* v = iter.next().value;\n* // returns [ 0, 1, 0 ]\n*\n* // ...\n*/\nfunction nditerIndices( shape ) {\n\tvar options;\n\tvar ndims;\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar idx;\n\tvar dim;\n\tvar sh;\n\tvar N;\n\tvar i;\n\n\tif ( !isCollection( shape ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array of nonnegative integers. Value: `%s`.', shape ) );\n\t}\n\topts = {\n\t\t'order': 'row-major'\n\t};\n\tif ( arguments.length > 1 ) {\n\t\toptions = arguments[ 1 ];\n\t\tif ( !isPlainObject( options ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t\t}\n\t\tif ( hasOwnProp( options, 'order' ) ) {\n\t\t\tif ( !isOrder( options.order ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a recognized order. Option: `%s`.', 'order', options.order ) );\n\t\t\t}\n\t\t\topts.order = options.order;\n\t\t}\n\t}\n\t// Retrieve the number of dimensions:\n\tndims = shape.length;\n\n\t// Copy the input shape:\n\tsh = [];\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tif ( !isNonNegativeInteger( shape[ i ] ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array of nonnegative integers. Value: `%s`.', shape ) );\n\t\t}\n\t\tsh.push( shape[ i ] );\n\t}\n\t// Check whether the input array is empty...\n\tN = numel( sh );\n\tif ( N === 0 ) {\n\t\tFLG = true;\n\t}\n\t// Resolve the dimension in which indices iterate fastest:\n\tif ( opts.order === 'row-major' ) {\n\t\tdim = ndims - 1;\n\t} else {\n\t\tdim = 0;\n\t}\n\t// Initialize a counter:\n\ti = -1;\n\n\t// Initialize an index array:\n\tidx = zeros( ndims );\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\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\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\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\tif ( i > 0 ) {\n\t\t\tidx = nextCartesianIndex( shape, opts.order, idx, dim, idx );\n\t\t}\n\t\t// Return the next set of indices:\n\t\treturn {\n\t\t\t'value': idx.slice(),\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 nditerIndices( sh, opts );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nditerIndices;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 returns indices for use in indexing into an ndarray having a specified shape.\n*\n* @module @stdlib/ndarray/iter/indices\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n* var nditerIndices = require( '@stdlib/ndarray/iter/indices' );\n*\n* var x = array( [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 5, 6 ], [ 7, 8 ] ] ] );\n* // returns \n*\n* var iter = nditerIndices( x.shape );\n*\n* var v = iter.next().value;\n* // returns [ 0, 0, 0 ]\n*\n* v = iter.next().value;\n* // returns [ 0, 0, 1 ]\n*\n* v = iter.next().value;\n* // returns [ 0, 1, 0 ]\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 isPlainObject = require( '@stdlib/assert/is-plain-object' );\nvar isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive;\nvar isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );\nvar isReadOnly = require( './../../../base/assert/is-read-only' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar iteratorSymbol = require( '@stdlib/symbol/iterator' );\nvar zeros = require( '@stdlib/array/base/zeros' );\nvar getShape = require( './../../../shape' );\nvar numel = require( './../../../base/numel' );\nvar slice = require( './../../../base/slice' );\nvar nextCartesianIndex = require( './../../../base/next-cartesian-index' ).assign;\nvar args2multislice = require( '@stdlib/slice/base/args2multislice' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iterates over each matrix in a stack of matrices.\n*\n* @param {ndarray} x - input value\n* @param {Options} [options] - function options\n* @param {boolean} [options.readonly=true] - boolean indicating whether returned views should be read-only\n* @throws {TypeError} first argument must be an ndarray\n* @throws {TypeError} first argument must have at least three dimensions\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {Error} cannot write to a read-only array\n* @returns {Iterator} iterator\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n*\n* var x = array( [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 5, 6 ], [ 7, 8 ] ] ] );\n* // returns \n*\n* var iter = nditerMatrices( x );\n*\n* var v = iter.next().value;\n* // returns \n*\n* var arr = ndarray2array( v );\n* // returns [ [ 1, 2 ], [ 3, 4 ] ]\n*\n* v = iter.next().value;\n* // returns \n*\n* arr = ndarray2array( v );\n* // returns [ [ 5, 6 ], [ 7, 8 ] ]\n*\n* // ...\n*/\nfunction nditerMatrices( x ) {\n\tvar options;\n\tvar shape;\n\tvar ndims;\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar idx;\n\tvar dim;\n\tvar S2;\n\tvar N;\n\tvar i;\n\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray. Value: `%s`.', x ) );\n\t}\n\topts = {\n\t\t'writable': false\n\t};\n\tif ( arguments.length > 1 ) {\n\t\toptions = arguments[ 1 ];\n\t\tif ( !isPlainObject( options ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t\t}\n\t\tif ( hasOwnProp( options, 'readonly' ) ) {\n\t\t\tif ( !isBoolean( options.readonly ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'readonly', options.readonly ) );\n\t\t\t}\n\t\t\topts.writable = !options.readonly;\n\t\t\tif ( opts.writable && isReadOnly( x ) ) {\n\t\t\t\tthrow new Error( format( 'invalid option. Cannot write to read-only array.' ) );\n\t\t\t}\n\t\t}\n\t}\n\t// Retrieve input array meta data:\n\tshape = getShape( x );\n\tndims = shape.length;\n\n\t// Ensure that the input array has sufficient dimensions...\n\tif ( ndims < 3 ) {\n\t\tthrow new TypeError( 'invalid argument. First argument must be an ndarray having at least three dimensions.' );\n\t}\n\t// Check whether the input array is empty...\n\tN = numel( shape );\n\tif ( N === 0 ) {\n\t\tFLG = true;\n\t}\n\t// Compute the number of matrices across all stacks of matrices:\n\tN /= shape[ ndims-1 ] * shape[ ndims-2 ];\n\tdim = ndims - 3;\n\tS2 = shape[ dim ];\n\n\t// Initialize a counter:\n\ti = -1;\n\n\t// Initialize an index array for generating slices:\n\tidx = zeros( ndims );\n\n\t// Set the last two elements to `null` to indicate that we want a full \"slice\" for the last two dimensions:\n\tidx[ ndims-1 ] = null;\n\tidx[ ndims-2 ] = null;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\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\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 s;\n\t\tvar j;\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\t// Create a multi-slice for the current view:\n\t\ts = args2multislice( idx );\n\n\t\t// Update the index array:\n\t\tj = ( idx[ dim ] + 1 ) % S2;\n\t\tidx[ dim ] = j;\n\t\tif ( j === 0 ) {\n\t\t\t// If we've iterated over all the matrices in the current stack, move on to the next set of matrices:\n\t\t\tidx = nextCartesianIndex( shape, 'row-major', idx, dim-1, idx );\n\t\t}\n\t\t// Return the next slice:\n\t\treturn {\n\t\t\t'value': slice( x, s, true, opts.writable ),\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 nditerMatrices( x, opts );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nditerMatrices;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 iterates over each matrix in a stack of matrices.\n*\n* @module @stdlib/ndarray/iter/matrices\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var nditerMatrices = require( '@stdlib/ndarray/iter/matrices' );\n*\n* var x = array( [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 5, 6 ], [ 7, 8 ] ] ] );\n* // returns \n*\n* var iter = nditerMatrices( x );\n*\n* var v = iter.next().value;\n* // returns \n*\n* var arr = ndarray2array( v );\n* // returns [ [ 1, 2 ], [ 3, 4 ] ]\n*\n* v = iter.next().value;\n* // returns \n*\n* arr = ndarray2array( v );\n* // returns [ [ 5, 6 ], [ 7, 8 ] ]\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 isPlainObject = require( '@stdlib/assert/is-plain-object' );\nvar isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive;\nvar isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );\nvar isReadOnly = require( './../../../base/assert/is-read-only' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar iteratorSymbol = require( '@stdlib/symbol/iterator' );\nvar zeros = require( '@stdlib/array/base/zeros' );\nvar getShape = require( './../../../shape' );\nvar numel = require( './../../../base/numel' );\nvar slice = require( './../../../base/slice' );\nvar nextCartesianIndex = require( './../../../base/next-cartesian-index' ).assign;\nvar args2multislice = require( '@stdlib/slice/base/args2multislice' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns an iterator which returns `[index, matrix]` pairs for each matrix in a stack of matrices.\n*\n* @param {ndarray} x - input array\n* @param {Options} [options] - function options\n* @param {boolean} [options.readonly=true] - boolean indicating whether returned views should be read-only\n* @throws {TypeError} first argument must be an ndarray\n* @throws {TypeError} first argument must have at least three dimensions\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {Error} cannot write to a read-only array\n* @returns {Iterator} iterator\n*\n* @example\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var x = array( [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 5, 6 ], [ 7, 8 ] ] ] );\n* // returns \n*\n* var iter = nditerMatrixEntries( x );\n*\n* var v = iter.next().value;\n* // returns [...]\n*\n* var idx = v[ 0 ];\n* // returns [ 0, null, null ]\n*\n* var mat = ndarray2array( v[ 1 ] );\n* // returns [ [ 1, 2 ], [ 3, 4 ] ]\n*\n* v = iter.next().value;\n* // returns [...]\n*\n* idx = v[ 0 ];\n* // returns [ 1, null, null ]\n*\n* mat = ndarray2array( v[ 1 ] );\n* // returns [ [ 5, 6 ], [ 7, 8 ] ]\n*\n* // ...\n*/\nfunction nditerMatrixEntries( x ) {\n\tvar options;\n\tvar shape;\n\tvar ndims;\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar idx;\n\tvar dim;\n\tvar S2;\n\tvar N;\n\tvar i;\n\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray. Value: `%s`.', x ) );\n\t}\n\topts = {\n\t\t'writable': false\n\t};\n\tif ( arguments.length > 1 ) {\n\t\toptions = arguments[ 1 ];\n\t\tif ( !isPlainObject( options ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t\t}\n\t\tif ( hasOwnProp( options, 'readonly' ) ) {\n\t\t\tif ( !isBoolean( options.readonly ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'readonly', options.readonly ) );\n\t\t\t}\n\t\t\topts.writable = !options.readonly;\n\t\t\tif ( opts.writable && isReadOnly( x ) ) {\n\t\t\t\tthrow new Error( format( 'invalid option. Cannot write to read-only array.' ) );\n\t\t\t}\n\t\t}\n\t}\n\t// Retrieve input array meta data:\n\tshape = getShape( x );\n\tndims = shape.length;\n\n\t// Ensure that the input array has sufficient dimensions...\n\tif ( ndims < 3 ) {\n\t\tthrow new TypeError( 'invalid argument. First argument must be an ndarray having at least three dimensions.' );\n\t}\n\n\t// Check whether the input array is empty...\n\tN = numel( shape );\n\tif ( N === 0 ) {\n\t\tFLG = true;\n\t}\n\t// Compute the number of matrices across all stacks of matrices:\n\tN /= shape[ ndims-1 ] * shape[ ndims-2 ];\n\tdim = ndims - 3;\n\tS2 = shape[ dim ];\n\n\t// Initialize a counter:\n\ti = -1;\n\n\t// Initialize an index array:\n\tidx = zeros( ndims );\n\n\t// Set the last two elements to `null` to indicate that we want a full \"slice\" for the last two dimensions:\n\tidx[ ndims-1 ] = null;\n\tidx[ ndims-2 ] = null;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\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\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 indices;\n\t\tvar s;\n\t\tvar j;\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\t// Cache the current state of the index array:\n\t\tindices = idx.slice();\n\n\t\t// Create a multi-slice for the current view:\n\t\ts = args2multislice( idx );\n\n\t\t// Update the index array:\n\t\tj = ( idx[ dim ] + 1 ) % S2;\n\t\tidx[ dim ] = j;\n\t\tif ( j === 0 ) {\n\t\t\t// If we've iterated over all the matrices in the current stack, move on to the next set of matrices:\n\t\t\tidx = nextCartesianIndex( shape, 'row-major', idx, dim-1, idx );\n\t\t}\n\t\t// Return the next matrix entry:\n\t\treturn {\n\t\t\t'value': [ indices, slice( x, s, true, opts.writable ) ],\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 nditerMatrixEntries( x, opts );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nditerMatrixEntries;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 returns `[index, matrix]` pairs for each matrix in a stack of matrices.\n*\n* @module @stdlib/ndarray/iter/matrix-entries\n*\n* @example\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var array = require( '@stdlib/ndarray/array' );\n* var nditerMatrixEntries = require( '@stdlib/ndarray/iter/matrix-entries' );\n*\n* var x = array( [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 5, 6 ], [ 7, 8 ] ] ] );\n* // returns \n*\n* var iter = nditerMatrixEntries( x );\n*\n* var v = iter.next().value;\n* // returns [...]\n*\n* var idx = v[ 0 ];\n* // returns [ 0, null, null ]\n*\n* var mat = ndarray2array( v[ 1 ] );\n* // returns [ [ 1, 2 ], [ 3, 4 ] ]\n*\n* v = iter.next().value;\n* // returns [...]\n*\n* idx = v[ 0 ];\n* // returns [ 1, null, null ]\n*\n* mat = ndarray2array( v[ 1 ] );\n* // returns [ [ 5, 6 ], [ 7, 8 ] ]\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 isPlainObject = require( '@stdlib/assert/is-plain-object' );\nvar isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive;\nvar isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );\nvar isReadOnly = require( './../../../base/assert/is-read-only' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar iteratorSymbol = require( '@stdlib/symbol/iterator' );\nvar zeros = require( '@stdlib/array/base/zeros' );\nvar getShape = require( './../../../shape' );\nvar numel = require( './../../../base/numel' );\nvar slice = require( './../../../base/slice' );\nvar nextCartesianIndex = require( './../../../base/next-cartesian-index' ).assign;\nvar args2multislice = require( '@stdlib/slice/base/args2multislice' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns an iterator which returns `[index, row]` pairs for each row in a matrix (or stack of matrices).\n*\n* @param {ndarray} x - input array\n* @param {Options} [options] - function options\n* @param {boolean} [options.readonly=true] - boolean indicating whether returned views should be read-only\n* @throws {TypeError} first argument must be an ndarray\n* @throws {TypeError} first argument must have at least two dimensions\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {Error} cannot write to a read-only array\n* @returns {Iterator} iterator\n*\n* @example\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var x = array( [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 5, 6 ], [ 7, 8 ] ] ] );\n* // returns \n*\n* var iter = nditerRowEntries( x );\n*\n* var v = iter.next().value;\n* // returns [...]\n*\n* var idx = v[ 0 ];\n* // returns [ 0, 0, null ]\n*\n* var row = ndarray2array( v[ 1 ] );\n* // returns [ 1, 2 ]\n*\n* v = iter.next().value;\n* // returns [...]\n*\n* idx = v[ 0 ];\n* // returns [ 0, 1, null ]\n*\n* row = ndarray2array( v[ 1 ] );\n* // returns [ 3, 4 ]\n*\n* // ...\n*/\nfunction nditerRowEntries( x ) {\n\tvar options;\n\tvar shape;\n\tvar ndims;\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar idx;\n\tvar dim;\n\tvar S1;\n\tvar N;\n\tvar i;\n\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray. Value: `%s`.', x ) );\n\t}\n\topts = {\n\t\t'writable': false\n\t};\n\tif ( arguments.length > 1 ) {\n\t\toptions = arguments[ 1 ];\n\t\tif ( !isPlainObject( options ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t\t}\n\t\tif ( hasOwnProp( options, 'readonly' ) ) {\n\t\t\tif ( !isBoolean( options.readonly ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'readonly', options.readonly ) );\n\t\t\t}\n\t\t\topts.writable = !options.readonly;\n\t\t\tif ( opts.writable && isReadOnly( x ) ) {\n\t\t\t\tthrow new Error( format( 'invalid option. Cannot write to read-only array.' ) );\n\t\t\t}\n\t\t}\n\t}\n\t// Retrieve input array meta data:\n\tshape = getShape( x );\n\tndims = shape.length;\n\n\t// Ensure that the input array has sufficient dimensions...\n\tif ( ndims < 2 ) {\n\t\tthrow new TypeError( 'invalid argument. First argument must be an ndarray having at least two dimensions.' );\n\t}\n\n\t// Check whether the input array is empty...\n\tN = numel( shape );\n\tif ( N === 0 ) {\n\t\tFLG = true;\n\t}\n\t// Compute the number of rows across all stacks of matrices:\n\tN /= shape[ ndims-1 ];\n\tdim = ndims - 2;\n\tS1 = shape[ dim ];\n\n\t// Initialize a counter:\n\ti = -1;\n\n\t// Initialize an index array:\n\tidx = zeros( ndims );\n\n\t// Set the last element to `null` to indicate that we want a full \"slice\" for the last dimension:\n\tidx[ ndims-1 ] = null;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\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\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 indices;\n\t\tvar s;\n\t\tvar j;\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\t// Cache the current state of the index array:\n\t\tindices = idx.slice();\n\n\t\t// Create a multi-slice for the current view:\n\t\ts = args2multislice( idx );\n\n\t\t// Update the index array:\n\t\tj = ( idx[ dim ] + 1 ) % S1;\n\t\tidx[ dim ] = j;\n\t\tif ( j === 0 ) {\n\t\t\t// If we've iterated over all the rows in the current matrix, move on to the next matrix in the stack:\n\t\t\tidx = nextCartesianIndex( shape, 'row-major', idx, dim-1, idx );\n\t\t}\n\t\t// Return the next row entry:\n\t\treturn {\n\t\t\t'value': [ indices, slice( x, s, true, opts.writable ) ],\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 nditerRowEntries( x, opts );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nditerRowEntries;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 returns `[index, row]` pairs for each row in a matrix (or stack of matrices).\n*\n* @module @stdlib/ndarray/iter/row-entries\n*\n* @example\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var array = require( '@stdlib/ndarray/array' );\n* var nditerRowEntries = require( '@stdlib/ndarray/iter/row-entries' );\n*\n* var x = array( [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 5, 6 ], [ 7, 8 ] ] ] );\n* // returns \n*\n* var iter = nditerRowEntries( x );\n*\n* var v = iter.next().value;\n* // returns [...]\n*\n* var idx = v[ 0 ];\n* // returns [ 0, 0, null ]\n*\n* var row = ndarray2array( v[ 1 ] );\n* // returns [ 1, 2 ]\n*\n* v = iter.next().value;\n* // returns [...]\n*\n* idx = v[ 0 ];\n* // returns [ 0, 1, null ]\n*\n* row = ndarray2array( v[ 1 ] );\n* // returns [ 3, 4 ]\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 isPlainObject = require( '@stdlib/assert/is-plain-object' );\nvar isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive;\nvar isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );\nvar isReadOnly = require( './../../../base/assert/is-read-only' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar iteratorSymbol = require( '@stdlib/symbol/iterator' );\nvar zeros = require( '@stdlib/array/base/zeros' );\nvar getShape = require( './../../../shape' );\nvar numel = require( './../../../base/numel' );\nvar slice = require( './../../../base/slice' );\nvar nextCartesianIndex = require( './../../../base/next-cartesian-index' ).assign;\nvar args2multislice = require( '@stdlib/slice/base/args2multislice' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iterates over each row in a matrix (or stack of matrices).\n*\n* @param {ndarray} x - input value\n* @param {Options} [options] - function options\n* @param {boolean} [options.readonly=true] - boolean indicating whether returned views should be read-only\n* @throws {TypeError} first argument must be an ndarray\n* @throws {TypeError} first argument must have at least two dimensions\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {Error} cannot write to a read-only array\n* @returns {Iterator} iterator\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n*\n* var x = array( [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 5, 6 ], [ 7, 8 ] ] ] );\n* // returns \n*\n* var iter = nditerRows( x );\n*\n* var v = iter.next().value;\n* // returns \n*\n* var arr = ndarray2array( v );\n* // returns [ 1, 2 ]\n*\n* v = iter.next().value;\n* // returns \n*\n* arr = ndarray2array( v );\n* // returns [ 3, 4 ]\n*\n* v = iter.next().value;\n* // returns \n*\n* arr = ndarray2array( v );\n* // returns [ 5, 6 ]\n*\n* // ...\n*/\nfunction nditerRows( x ) {\n\tvar options;\n\tvar shape;\n\tvar ndims;\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar idx;\n\tvar dim;\n\tvar S1;\n\tvar N;\n\tvar i;\n\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray. Value: `%s`.', x ) );\n\t}\n\topts = {\n\t\t'writable': false\n\t};\n\tif ( arguments.length > 1 ) {\n\t\toptions = arguments[ 1 ];\n\t\tif ( !isPlainObject( options ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t\t}\n\t\tif ( hasOwnProp( options, 'readonly' ) ) {\n\t\t\tif ( !isBoolean( options.readonly ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'readonly', options.readonly ) );\n\t\t\t}\n\t\t\topts.writable = !options.readonly;\n\t\t\tif ( opts.writable && isReadOnly( x ) ) {\n\t\t\t\tthrow new Error( format( 'invalid option. Cannot write to read-only array.' ) );\n\t\t\t}\n\t\t}\n\t}\n\t// Retrieve input array meta data:\n\tshape = getShape( x );\n\tndims = shape.length;\n\n\t// Ensure that the input array has sufficient dimensions...\n\tif ( ndims < 2 ) {\n\t\tthrow new TypeError( 'invalid argument. First argument must be an ndarray having at least two dimensions.' );\n\t}\n\t// Check whether the input array is empty...\n\tN = numel( shape );\n\tif ( N === 0 ) {\n\t\tFLG = true;\n\t}\n\t// Compute the number of rows across all stacks of matrices:\n\tN /= shape[ ndims-1 ];\n\tdim = ndims - 2;\n\tS1 = shape[ dim ];\n\n\t// Initialize a counter:\n\ti = -1;\n\n\t// Initialize an index array for generating slices:\n\tidx = zeros( ndims );\n\n\t// Set the last element to `null` to indicate that we want a full \"slice\" for the last dimension:\n\tidx[ ndims-1 ] = null;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\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\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 s;\n\t\tvar j;\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\t// Create a multi-slice for the current view:\n\t\ts = args2multislice( idx );\n\n\t\t// Update the index array:\n\t\tj = ( idx[ dim ] + 1 ) % S1;\n\t\tidx[ dim ] = j;\n\t\tif ( j === 0 ) {\n\t\t\t// If we've iterated over all the rows in the current matrix, move on to the next matrix in the stack:\n\t\t\tidx = nextCartesianIndex( shape, 'row-major', idx, dim-1, idx );\n\t\t}\n\t\t// Return the next row slice:\n\t\treturn {\n\t\t\t'value': slice( x, s, true, opts.writable ),\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 nditerRows( x, opts );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nditerRows;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 iterates over each row in a matrix (or stack of matrices).\n*\n* @module @stdlib/ndarray/iter/rows\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var nditerRows = require( '@stdlib/ndarray/iter/rows' );\n*\n* var x = array( [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 5, 6 ], [ 7, 8 ] ] ] );\n* // returns \n*\n* var iter = nditerRows( x );\n*\n* var v = iter.next().value;\n* // returns \n*\n* var arr = ndarray2array( v );\n* // returns [ 1, 2 ]\n*\n* v = iter.next().value;\n* // returns \n*\n* arr = ndarray2array( v );\n* // returns [ 3, 4 ]\n*\n* v = iter.next().value;\n* // returns \n*\n* arr = ndarray2array( v );\n* // returns [ 5, 6 ]\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );\nvar toArray = require( './../../base/to-array' );\nvar getStrides = require( './../../strides' );\nvar getOffset = require( './../../offset' );\nvar getShape = require( './../../shape' );\nvar getOrder = require( './../../order' );\nvar getData = require( './../../data-buffer' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Converts an ndarray to a generic array (which may include nested arrays).\n*\n* @param {ndarrayLike} x - input ndarray\n* @throws {TypeError} must provide an ndarray\n* @returns {(EmptyArray|Array|Array)} array (which may include nested arrays)\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n*\n* var buffer = [ 1, 2, 3, 4 ];\n* var shape = [ 2, 2 ];\n* var order = 'row-major';\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var arr = ndarray( 'generic', buffer, shape, strides, offset, order );\n*\n* var out = ndarray2array( arr );\n* // returns [ [ 1, 2 ], [ 3, 4 ] ]\n*/\nfunction ndarray2array( x ) {\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\treturn toArray( getData( x ), getShape( x ), getStrides( x ), getOffset( x ), getOrder( x ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nmodule.exports = ndarray2array;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 ndarray to a generic array (which may include nested arrays).\n*\n* @module @stdlib/ndarray/to-array\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n*\n* var buffer = [ 1, 2, 3, 4 ];\n* var shape = [ 2, 2 ];\n* var order = 'row-major';\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var arr = ndarray( 'generic', buffer, shape, strides, offset, order );\n* // returns \n*\n* var out = ndarray2array( arr );\n* // returns [ [ 1, 2 ], [ 3, 4 ] ]\n*/\n\n// MODULES //\n\nvar ndarray2array = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = ndarray2array;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 isIteratorLike = require( '@stdlib/assert/is-iterator-like' );\nvar iteratorSymbol = require( '@stdlib/symbol/iterator' );\nvar ndarray2array = require( './../../../to-array' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns an iterator which converts each iterated ndarray to a generic array.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var nditerRows = require( '@stdlib/ndarray/iter/rows' );\n*\n* var x = array( [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 5, 6 ], [ 7, 8 ] ] ] );\n* // returns \n*\n* var iter = nditer2arrayEach( nditerRows( x ) );\n*\n* var v = iter.next().value;\n* // returns [ 1, 2 ]\n*\n* v = iter.next().value;\n* // returns [ 3, 4 ]\n*\n* v = iter.next().value;\n* // returns [ 5, 6 ]\n*\n* // ...\n*/\nfunction nditer2arrayEach( iterator ) {\n\tvar iter;\n\tvar FLG;\n\n\tif ( !isIteratorLike( iterator ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an iterator protocol-compliant object. Value: `%s`.', iterator ) );\n\t}\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator` and a provided iterator is iterable, make the iterator iterable:\n\tif ( iteratorSymbol && isFunction( iterator[ iteratorSymbol ] ) ) {\n\t\tsetReadOnly( iter, iteratorSymbol, 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 v;\n\t\tif ( FLG ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\tv = iterator.next();\n\t\tif ( v.done ) {\n\t\t\tFLG = true;\n\t\t\treturn v;\n\t\t}\n\t\treturn {\n\t\t\t'value': ndarray2array( v.value ),\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 nditer2arrayEach( iterator[ iteratorSymbol ]() );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nditer2arrayEach;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 converts each iterated ndarray to a generic array.\n*\n* @module @stdlib/ndarray/iter/to-array-each\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var nditerRows = require( '@stdlib/ndarray/iter/rows' );\n* var nditer2arrayEach = require( '@stdlib/ndarray/iter/to-array-each' );\n*\n* var x = array( [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 5, 6 ], [ 7, 8 ] ] ] );\n* // returns \n*\n* var iter = nditer2arrayEach( nditerRows( x ) );\n*\n* var v = iter.next().value;\n* // returns [ 1, 2 ]\n*\n* v = iter.next().value;\n* // returns [ 3, 4 ]\n*\n* v = iter.next().value;\n* // returns [ 5, 6 ]\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 isPlainObject = require( '@stdlib/assert/is-plain-object' );\nvar isOrder = require( './../../../base/assert/is-order' );\nvar isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar iteratorSymbol = require( '@stdlib/symbol/iterator' );\nvar zeros = require( '@stdlib/array/base/zeros' );\nvar getShape = require( './../../../shape' );\nvar numel = require( './../../../base/numel' );\nvar nextCartesianIndex = require( './../../../base/next-cartesian-index' ).assign;\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns an iterator which returns individual elements from a provided ndarray.\n*\n* @param {ndarray} x - input array\n* @param {Options} [options] - function options\n* @param {boolean} [options.order='row-major'] - index iteration order\n* @throws {TypeError} first argument must be an ndarray\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {Iterator} iterator\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var x = array( [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 5, 6 ], [ 7, 8 ] ] ] );\n* // returns \n*\n* var iter = nditerValues( x );\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 nditerValues( x ) {\n\tvar options;\n\tvar shape;\n\tvar ndims;\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar idx;\n\tvar dim;\n\tvar N;\n\tvar i;\n\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray. Value: `%s`.', x ) );\n\t}\n\topts = {\n\t\t'order': x.order\n\t};\n\tif ( arguments.length > 1 ) {\n\t\toptions = arguments[ 1 ];\n\t\tif ( !isPlainObject( options ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t\t}\n\t\tif ( hasOwnProp( options, 'order' ) ) {\n\t\t\tif ( !isOrder( options.order ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a recognized order. Option: `%s`.', 'order', options.order ) );\n\t\t\t}\n\t\t\topts.order = options.order;\n\t\t}\n\t}\n\t// Retrieve input array meta data:\n\tshape = getShape( x );\n\tndims = shape.length;\n\n\t// Check whether the input array is empty...\n\tN = numel( shape );\n\tif ( N === 0 ) {\n\t\tFLG = true;\n\t}\n\t// Resolve the dimension in which indices iterate fastest:\n\tif ( opts.order === 'row-major' ) {\n\t\tdim = ndims - 1;\n\t} else {\n\t\tdim = 0;\n\t}\n\t// Initialize a counter:\n\ti = -1;\n\n\t// Initialize an index array:\n\tidx = zeros( ndims );\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\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\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\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\tif ( i > 0 ) {\n\t\t\tidx = nextCartesianIndex( shape, opts.order, idx, dim, idx );\n\t\t}\n\t\t// Return the next set of indices:\n\t\treturn {\n\t\t\t'value': x.get.apply( x, idx ),\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 nditerValues( x, opts );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nditerValues;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 returns individual elements from a provided ndarray.\n*\n* @module @stdlib/ndarray/iter/values\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n* var nditerValues = require( '@stdlib/ndarray/iter/values' );\n*\n* var x = array( [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 5, 6 ], [ 7, 8 ] ] ] );\n* // returns \n*\n* var iter = nditerValues( x.shape );\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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* Top-level namespace.\n*\n* @namespace ns\n*/\nvar ns = {};\n\n/**\n* @name nditerColumnEntries\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/iter/column-entries}\n*/\nsetReadOnly( ns, 'nditerColumnEntries', require( './../../iter/column-entries' ) );\n\n/**\n* @name nditerColumns\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/iter/columns}\n*/\nsetReadOnly( ns, 'nditerColumns', require( './../../iter/columns' ) );\n\n/**\n* @name nditerEntries\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/iter/entries}\n*/\nsetReadOnly( ns, 'nditerEntries', require( './../../iter/entries' ) );\n\n/**\n* @name nditerIndices\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/iter/indices}\n*/\nsetReadOnly( ns, 'nditerIndices', require( './../../iter/indices' ) );\n\n/**\n* @name nditerMatrices\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/iter/matrices}\n*/\nsetReadOnly( ns, 'nditerMatrices', require( './../../iter/matrices' ) );\n\n/**\n* @name nditerMatrixEntries\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/iter/matrix-entries}\n*/\nsetReadOnly( ns, 'nditerMatrixEntries', require( './../../iter/matrix-entries' ) );\n\n/**\n* @name nditerRowEntries\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/iter/row-entries}\n*/\nsetReadOnly( ns, 'nditerRowEntries', require( './../../iter/row-entries' ) );\n\n/**\n* @name nditerRows\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/iter/rows}\n*/\nsetReadOnly( ns, 'nditerRows', require( './../../iter/rows' ) );\n\n/**\n* @name nditer2arrayEach\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/iter/to-array-each}\n*/\nsetReadOnly( ns, 'nditer2arrayEach', require( './../../iter/to-array-each' ) );\n\n/**\n* @name nditerValues\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/iter/values}\n*/\nsetReadOnly( ns, 'nditerValues', require( './../../iter/values' ) );\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// MODULES //\n\nvar isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar broadcast = require( './../../broadcast-array' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Broadcasts an ndarray to a specified shape if and only if the specified shape differs from the provided ndarray's shape.\n*\n* ## Notes\n*\n* - If a provided ndarray has the same shape as the specified shape, the function returns the provided ndarray.\n* - If a provided ndarray has a different (broadcast compatible) shape than the specified shape, the function returns a new **read-only** ndarray view of the provided ndarray's data. The view is typically **not** contiguous. As more than one element of a returned view may refer to the same memory location, writing to the input ndarray may affect multiple elements. If you need to write to the input ndarray, copy the input ndarray before broadcasting.\n*\n* @param {ndarray} x - input array\n* @param {NonNegativeIntegerArray} shape - desired shape\n* @throws {TypeError} first argument must be an ndarray\n* @throws {TypeError} second argument must be an array of nonnegative integers\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 shape\n* @throws {Error} input array and desired shape must be broadcast compatible\n* @returns {ndarray} broadcasted array\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var shx = x.shape;\n* // returns [ 2, 2 ]\n*\n* var y = maybeBroadcastArray( x, [ 3, 2, 2 ] );\n* // returns \n*\n* var shy = y.shape;\n* // returns [ 3, 2, 2 ]\n*\n* var v = y.get( 0, 0, 0 );\n* // returns 1\n*\n* v = y.get( 0, 0, 1 );\n* // returns 2\n*\n* v = y.get( 1, 0, 0 );\n* // returns 1\n*\n* v = y.get( 1, 1, 0 );\n* // returns 3\n*\n* v = y.get( 2, 0, 0 );\n* // returns 1\n*\n* v = y.get( 2, 1, 1 );\n* // returns 4\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var y = maybeBroadcastArray( x, [ 3, 2 ] );\n* // throws \n*/\nfunction maybeBroadcastArray( x, shape ) {\n\tvar sh;\n\tvar N;\n\tvar d;\n\tvar i;\n\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray. Value: `%s`.', x ) );\n\t}\n\tif ( !isCollection( shape ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an array of nonnegative integers. Value: `%s`.', shape ) );\n\t}\n\tN = shape.length;\n\tsh = x.shape;\n\n\t// Check whether we need to broadcast the input array...\n\tif ( sh.length === N ) {\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\td = shape[ i ];\n\t\t\tif ( !isNonNegativeInteger( d ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an array of nonnegative integers. Value: `%s`.', '[' + shape.join( ',' ) + ']' ) );\n\t\t\t}\n\t\t\t// Check whether dimensions match...\n\t\t\tif ( sh[ i ] !== d ) {\n\t\t\t\t// We found a mismatched dimension; delegate to `broadcast` to ensure that the input array is broadcast compatible with the desired array shape...\n\t\t\t\treturn broadcast( x, shape );\n\t\t\t}\n\t\t}\n\t\treturn x;\n\t}\n\t// If we are provided an array having a different rank (i.e., number of dimensions) than the desired shape, assume we need to broadcast, delegating to `broadcast` to ensure that the input array is broadcast compatible with the desired array shape...\n\treturn broadcast( x, shape );\n}\n\n\n// EXPORTS //\n\nmodule.exports = maybeBroadcastArray;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 ndarray to a specified shape if and only if the specified shape differs from the provided ndarray's shape.\n*\n* @module @stdlib/ndarray/maybe-broadcast-array\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n* var maybeBroadcastArray = require( '@stdlib/ndarray/maybe-broadcast-array' );\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var shx = x.shape;\n* // returns [ 2, 2 ]\n*\n* var y = maybeBroadcastArray( x, [ 3, 2, 2 ] );\n* // returns \n*\n* var shy = y.shape;\n* // returns [ 3, 2, 2 ]\n*\n* var v = y.get( 0, 0, 0 );\n* // returns 1\n*\n* v = y.get( 0, 0, 1 );\n* // returns 2\n*\n* v = y.get( 1, 0, 0 );\n* // returns 1\n*\n* v = y.get( 1, 1, 0 );\n* // returns 3\n*\n* v = y.get( 2, 0, 0 );\n* // returns 1\n*\n* v = y.get( 2, 1, 1 );\n* // returns 4\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\"complex64\": \"complex128\",\n\t\"complex128\": -1,\n\t\"generic\": -1,\n\t\"binary\": -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 resolveStr = require( './../../base/dtype-resolve-str' );\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 ndarray data type of the same kind.\n*\n* @param {*} [dtype] - ndarray data type value\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\tdtype = resolveStr( dtype );\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 ndarray data type of the same kind.\n*\n* @module @stdlib/ndarray/next-dtype\n*\n* @example\n* var nextDataType = require( '@stdlib/ndarray/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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 isCollection = require( '@stdlib/assert/is-collection' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns the number of elements in an ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @throws {TypeError} must provide an ndarray\n* @returns {NonNegativeInteger} number of elements\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n*\n* var n = numel( zeros( [ 3, 3, 3 ] ) );\n* // returns 27\n*/\nfunction numel( x ) {\n\tvar ndims;\n\tvar sh;\n\tvar n;\n\tvar d;\n\tvar i;\n\n\t// Note: we intentionally avoid rigorous ndarray checks to minimize performance impacts. This obviously means that non-ndarray-like objects (e.g., vanilla arrays) can sneak through, but this is likely all right for the purposes of this function...\n\tif ( typeof x !== 'object' || x === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\tn = x.length;\n\tif ( isNonNegativeInteger( n ) ) {\n\t\treturn n;\n\t}\n\tsh = x.shape;\n\tif ( !isCollection( sh ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\tndims = sh.length;\n\tif ( ndims === 0 ) {\n\t\t// Note: for minimal \"ndarray-like objects\", this will erroneously return zero when `x` is a zero-dimensional ndarray. This is part of the rationale for having a `length` property on actual ndarrays. As we don't can't know whether a provided ndarray-like is actually zero-dimensional without knowing/inspecting implementation details, we return zero here...\n\t\treturn 0;\n\t}\n\tn = 1;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = sh[ i ];\n\t\tif ( !isNonNegativeInteger( d ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t\t}\n\t\tn *= d;\n\t}\n\treturn n;\n}\n\n\n// EXPORTS //\n\nmodule.exports = numel;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 number of elements in an ndarray.\n*\n* @module @stdlib/ndarray/numel\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n* var numel = require( '@stdlib/ndarray/numel' );\n*\n* var n = numel( zeros( [ 3, 3, 3 ] ) );\n* // returns 27\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\": \"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\t\t\"complex64\": \"complex128\",\n\t\t\"complex128\": \"complex128\",\n\t\t\"binary\": -1,\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\t\t\"complex64\": \"complex64\",\n\t\t\"complex128\": \"complex128\",\n\t\t\"binary\": -1,\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\t\t\"complex64\": \"complex128\",\n\t\t\"complex128\": \"complex128\",\n\t\t\"binary\": -1,\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\t\t\"complex64\": \"complex64\",\n\t\t\"complex128\": \"complex128\",\n\t\t\"binary\": -1,\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\t\t\"complex64\": \"complex64\",\n\t\t\"complex128\": \"complex128\",\n\t\t\"binary\": -1,\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\t\t\"complex64\": \"complex128\",\n\t\t\"complex128\": \"complex128\",\n\t\t\"binary\": -1,\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\t\t\"complex64\": \"complex64\",\n\t\t\"complex128\": \"complex128\",\n\t\t\"binary\": -1,\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\t\t\"complex64\": \"complex64\",\n\t\t\"complex128\": \"complex128\",\n\t\t\"binary\": -1,\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\": \"uint8c\",\n\t\t\"complex64\": \"complex64\",\n\t\t\"complex128\": \"complex128\",\n\t\t\"binary\": -1,\n\t\t\"generic\": \"generic\"\n\t},\n\t\"complex128\": {\n\t\t\"float64\": \"complex128\",\n\t\t\"float32\": \"complex128\",\n\t\t\"int32\": \"complex128\",\n\t\t\"int16\": \"complex128\",\n\t\t\"int8\": \"complex128\",\n\t\t\"uint32\": \"complex128\",\n\t\t\"uint16\": \"complex128\",\n\t\t\"uint8\": \"complex128\",\n\t\t\"uint8c\": \"complex128\",\n\t\t\"complex64\": \"complex128\",\n\t\t\"complex128\": \"complex128\",\n\t\t\"binary\": -1,\n\t\t\"generic\": \"generic\"\n\t},\n\t\"complex64\": {\n\t\t\"float64\": \"complex128\",\n\t\t\"float32\": \"complex64\",\n\t\t\"int32\": \"complex128\",\n\t\t\"int16\": \"complex64\",\n\t\t\"int8\": \"complex64\",\n\t\t\"uint32\": \"complex128\",\n\t\t\"uint16\": \"complex64\",\n\t\t\"uint8\": \"complex64\",\n\t\t\"uint8c\": \"complex64\",\n\t\t\"complex64\": \"complex64\",\n\t\t\"complex128\": \"complex128\",\n\t\t\"binary\": -1,\n\t\t\"generic\": \"generic\"\n\t},\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\t\t\"complex64\": \"generic\",\n\t\t\"complex128\": \"generic\",\n\t\t\"binary\": -1,\n\t\t\"generic\": \"generic\"\n\t},\n\t\"binary\": {\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\": -1,\n\t\t\"uint16\": -1,\n\t\t\"uint8\": -1,\n\t\t\"uint8c\": -1,\n\t\t\"complex64\": -1,\n\t\t\"complex128\": -1,\n\t\t\"binary\": \"binary\",\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 resolve = require( './../../base/dtype-resolve-str' );\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 ndarray data type with the smallest size and closest \"kind\" to which ndarray data types can be safely cast.\n*\n* @param {*} [dtype1] - ndarray data type value\n* @param {*} [dtype2] - ndarray data type value\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( 'binary', 'generic' );\n* // returns -1\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\tdtype1 = resolve( dtype1 );\n\tif ( hasOwnProp( PROMOTION_RULES, dtype1 ) ) {\n\t\to = PROMOTION_RULES[ dtype1 ];\n\t\tdtype2 = resolve( dtype2 );\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 ndarray data type with the smallest size and closest \"kind\" to which ndarray data types can be safely cast.\n*\n* @module @stdlib/ndarray/promotion-rules\n*\n* @example\n* var promotionRules = require( '@stdlib/ndarray/promotion-rules' );\n*\n* var table = promotionRules();\n* // returns {...}\n*\n* var dt = promotionRules( 'float32', 'uint32' );\n* // returns 'float64'\n*\n* dt = promotionRules( 'binary', 'generic' );\n* // returns -1\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );\nvar isMultiSlice = require( '@stdlib/assert/is-multi-slice' );\nvar isArrayLikeObject = require( '@stdlib/assert/is-array-like-object' );\nvar isPlainObject = require( '@stdlib/assert/is-plain-object' );\nvar isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive;\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar MultiSlice = require( '@stdlib/slice/multi' );\nvar args2multislice = require( '@stdlib/slice/base/args2multislice' );\nvar base = require( './../../base/slice' );\nvar getShape = require( './../../shape' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns a read-only view of an input ndarray.\n*\n* @param {ndarray} x - input array\n* @param {...*} s - slice arguments\n* @param {Options} [options] - options\n* @param {boolean} [options.strict] - boolean indicating whether to enforce strict bounds checking\n* @throws {TypeError} first argument must be an ndarray\n* @throws {TypeError} must provide valid slice arguments\n* @throws {Error} insufficient arguments\n* @throws {Error} too many arguments\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {RangeError} number of slice dimensions must match the number of array dimensions\n* @throws {RangeError} slice exceeds array bounds\n* @returns {ndarray} ndarray view\n*\n* @example\n* var Slice = require( '@stdlib/slice/ctor' );\n* var MultiSlice = require( '@stdlib/slice/multi' );\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var s = new MultiSlice( new Slice( null, null, -2 ), new Slice( null, null, -1 ) );\n* // returns \n*\n* var y = slice( x, s );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 6.0, 5.0 ], [ 2.0, 1.0 ] ]\n*/\nfunction slice( x, s ) {\n\tvar options;\n\tvar nargs;\n\tvar opts;\n\tvar args;\n\tvar sh;\n\tvar S;\n\tvar i;\n\n\topts = {\n\t\t'strict': true\n\t};\n\tnargs = arguments.length;\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray. Value: `%s`.', x ) );\n\t}\n\tif ( isPlainObject( arguments[ nargs-1 ] ) ) {\n\t\tnargs -= 1;\n\t\toptions = arguments[ nargs ];\n\t\tif ( hasOwnProp( options, 'strict' ) ) {\n\t\t\tif ( !isBoolean( options.strict ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'strict', options.strict ) );\n\t\t\t}\n\t\t\topts.strict = options.strict;\n\t\t}\n\t\tsh = getShape( x );\n\t\tif ( nargs === 1 && sh.length > 0 ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Number of slice dimensions does not match the number of array dimensions. Array shape: (%s). Slice dimensions: %u.', sh.join( ',' ), 0 ) );\n\t\t}\n\t}\n\tif ( isMultiSlice( s ) ) {\n\t\tS = s;\n\t\tif ( nargs > 2 ) {\n\t\t\tthrow new Error( 'invalid invocation. Too many arguments.' );\n\t\t}\n\t} else {\n\t\tif ( isArrayLikeObject( s ) ) {\n\t\t\targs = s;\n\t\t\tif ( nargs > 2 ) {\n\t\t\t\tthrow new Error( 'invalid invocation. Too many arguments.' );\n\t\t\t}\n\t\t} else {\n\t\t\targs = [];\n\t\t\tfor ( i = 1; i < nargs; i++ ) {\n\t\t\t\targs.push( arguments[ i ] );\n\t\t\t}\n\t\t}\n\t\ttry {\n\t\t\tS = args2multislice( args );\n\t\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\t\t// Search for the first offending value...\n\t\t\tfor ( i = 0; i < args.length; i++ ) {\n\t\t\t\ttry {\n\t\t\t\t\tnew MultiSlice( args[ i ] ); // eslint-disable-line no-new\n\t\t\t\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Slice arguments must be either a Slice, integer, null, or undefined. Value: `%s`.', String( args[ i ] ) ) );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn base( x, S, opts.strict, false );\n}\n\n\n// EXPORTS //\n\nmodule.exports = slice;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 read-only view of an input ndarray.\n*\n* @module @stdlib/ndarray/slice\n*\n* @example\n* var Slice = require( '@stdlib/slice/ctor' );\n* var MultiSlice = require( '@stdlib/slice/multi' );\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var slice = require( '@stdlib/ndarray/slice' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var s = new MultiSlice( new Slice( null, null, -2 ), new Slice( null, null, -1 ) );\n* // returns \n*\n* var y = slice( x, s );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 6.0, 5.0 ], [ 2.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 isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );\nvar isMultiSlice = require( '@stdlib/assert/is-multi-slice' );\nvar isArrayLikeObject = require( '@stdlib/assert/is-array-like-object' );\nvar isPlainObject = require( '@stdlib/assert/is-plain-object' );\nvar isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive;\nvar isReadOnly = require( './../../base/assert/is-read-only' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar MultiSlice = require( '@stdlib/slice/multi' );\nvar args2multislice = require( '@stdlib/slice/base/args2multislice' );\nvar base = require( './../../base/slice-assign' );\nvar getShape = require( './../../shape' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Assigns element values from a broadcasted input ndarray to corresponding elements in an output ndarray view.\n*\n* @param {ndarray} x - input array\n* @param {ndarray} y - output array\n* @param {...*} s - slice arguments\n* @param {Options} [options] - options\n* @param {boolean} [options.strict] - boolean indicating whether to enforce strict bounds checking\n* @throws {TypeError} first argument must be an ndarray\n* @throws {TypeError} second argument must be an ndarray\n* @throws {TypeError} must provide valid slice arguments\n* @throws {Error} insufficient arguments\n* @throws {Error} too many arguments\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {RangeError} number of slice dimensions must match the number of output array dimensions\n* @throws {RangeError} slice exceeds array bounds\n* @throws {Error} input array must be broadcast compatible with an output array view\n* @throws {TypeError} input array cannot be safely cast to the output array data type\n* @throws {Error} cannot write to a read-only ndarray\n* @returns {ndarray} output array\n*\n* @example\n* var Slice = require( '@stdlib/slice/ctor' );\n* var MultiSlice = require( '@stdlib/slice/multi' );\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndzeros = require( '@stdlib/ndarray/zeros' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n*\n* // Define an input array:\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* // Define an output array:\n* var y = ndzeros( [ 2, 3, 2 ], {\n* 'dtype': x.dtype\n* });\n*\n* // Create a slice:\n* var s0 = null;\n* var s1 = new Slice( null, null, -1 );\n* var s2 = new Slice( null, null, -1 );\n* var s = new MultiSlice( s0, s1, s2 );\n* // returns \n*\n* // Perform assignment:\n* var out = sliceAssign( x, y, s );\n* // returns \n*\n* var bool = ( out === y );\n* // returns true\n*\n* arr = ndarray2array( y );\n* // returns [ [ [ 6.0, 5.0 ], [ 4.0, 3.0 ], [ 2.0, 1.0 ] ], [ [ 6.0, 5.0 ], [ 4.0, 3.0 ], [ 2.0, 1.0 ] ] ]\n*/\nfunction sliceAssign( x, y, s ) {\n\tvar options;\n\tvar nargs;\n\tvar opts;\n\tvar args;\n\tvar sh;\n\tvar S;\n\tvar i;\n\n\topts = {\n\t\t'strict': true\n\t};\n\tnargs = arguments.length;\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray. Value: `%s`.', x ) );\n\t}\n\tif ( !isndarrayLike( y ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an ndarray. Value: `%s`.', y ) );\n\t}\n\tif ( isReadOnly( y ) ) {\n\t\tthrow new Error( 'invalid argument. Cannot write to a read-only array.' );\n\t}\n\tif ( isPlainObject( arguments[ nargs-1 ] ) ) {\n\t\tnargs -= 1;\n\t\toptions = arguments[ nargs ];\n\t\tif ( hasOwnProp( options, 'strict' ) ) {\n\t\t\tif ( !isBoolean( options.strict ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'strict', options.strict ) );\n\t\t\t}\n\t\t\topts.strict = options.strict;\n\t\t}\n\t\tsh = getShape( y );\n\t\tif ( nargs === 2 && sh.length > 0 ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Number of slice dimensions does not match the number of array dimensions. Array shape: (%s). Slice dimensions: %u.', sh.join( ',' ), 0 ) );\n\t\t}\n\t}\n\tif ( isMultiSlice( s ) ) {\n\t\tS = s;\n\t\tif ( nargs > 3 ) {\n\t\t\tthrow new Error( 'invalid invocation. Too many arguments.' );\n\t\t}\n\t} else {\n\t\tif ( isArrayLikeObject( s ) ) {\n\t\t\targs = s;\n\t\t\tif ( nargs > 3 ) {\n\t\t\t\tthrow new Error( 'invalid invocation. Too many arguments.' );\n\t\t\t}\n\t\t} else {\n\t\t\targs = [];\n\t\t\tfor ( i = 2; i < nargs; i++ ) {\n\t\t\t\targs.push( arguments[ i ] );\n\t\t\t}\n\t\t}\n\t\ttry {\n\t\t\tS = args2multislice( args );\n\t\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\t\t// Search for the first offending value...\n\t\t\tfor ( i = 0; i < args.length; i++ ) {\n\t\t\t\ttry {\n\t\t\t\t\tnew MultiSlice( args[ i ] ); // eslint-disable-line no-new\n\t\t\t\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Slice arguments must be either a Slice, integer, null, or undefined. Value: `%s`.', String( args[ i ] ) ) );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn base( x, y, S, opts.strict );\n}\n\n\n// EXPORTS //\n\nmodule.exports = sliceAssign;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Assign element values from a broadcasted input ndarray to corresponding elements in an output ndarray view.\n*\n* @module @stdlib/ndarray/slice-assign\n*\n* @example\n* var Slice = require( '@stdlib/slice/ctor' );\n* var MultiSlice = require( '@stdlib/slice/multi' );\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndzeros = require( '@stdlib/ndarray/zeros' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var sliceAssign = require( '@stdlib/ndarray/slice-assign' );\n*\n* // Define an input array:\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* // Define an output array:\n* var y = ndzeros( [ 2, 3, 2 ], {\n* 'dtype': x.dtype\n* });\n*\n* // Create a slice:\n* var s0 = null;\n* var s1 = new Slice( null, null, -1 );\n* var s2 = new Slice( null, null, -1 );\n* var s = new MultiSlice( s0, s1, s2 );\n* // returns \n*\n* // Perform assignment:\n* var out = sliceAssign( x, y, s );\n* // returns \n*\n* var bool = ( out === y );\n* // returns true\n*\n* arr = ndarray2array( y );\n* // returns [ [ [ 6.0, 5.0 ], [ 4.0, 3.0 ], [ 2.0, 1.0 ] ], [ [ 6.0, 5.0 ], [ 4.0, 3.0 ], [ 2.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 isPlainObject = require( '@stdlib/assert/is-plain-object' );\nvar isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive;\nvar isInteger = require( '@stdlib/assert/is-integer' ).isPrimitive;\nvar isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );\nvar isUndefined = require( '@stdlib/assert/is-undefined' );\nvar isSlice = require( '@stdlib/assert/is-slice' );\nvar isNull = require( '@stdlib/assert/is-null' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar Slice = require( '@stdlib/slice/ctor' );\nvar base = require( './../../base/slice-dimension' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns a read-only view of an input ndarray when sliced along a specified dimension.\n*\n* @param {ndarray} x - input array\n* @param {integer} dim - index of dimension to slice\n* @param {(Slice|integer|null|undefined)} s - slice argument\n* @param {Options} [options] - options\n* @param {boolean} [options.strict] - boolean indicating whether to enforce strict bounds checking\n* @throws {TypeError} first argument must be an ndarray having one or more dimensions\n* @throws {TypeError} second argument must be an integer\n* @throws {TypeError} third argument must be either a Slice, integer, null, or undefined\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {RangeError} dimension index exceeds the number of dimensions\n* @throws {RangeError} slice exceeds array bounds\n* @returns {ndarray} ndarray view\n*\n* @example\n* var Slice = require( '@stdlib/slice/ctor' );\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var s = new Slice( null, null, -1 );\n* // returns \n*\n* var y = sliceDimension( x, 0, s );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 3, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 5.0, 6.0 ], [ 3.0, 4.0 ], [ 1.0, 2.0 ] ]\n*/\nfunction sliceDimension( x, dim, s ) {\n\tvar options;\n\tvar slice;\n\tvar opts;\n\n\topts = {\n\t\t'strict': true\n\t};\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray. Value: `%s`.', x ) );\n\t}\n\tif ( !isInteger( dim ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', dim ) );\n\t}\n\tif ( isInteger( s ) || isSlice( s ) ) {\n\t\tslice = s;\n\t} else if ( isNull( s ) || isUndefined( s ) ) {\n\t\tslice = new Slice();\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be either a Slice, integer, null, or undefined. Value: `%s`.', s ) );\n\t}\n\tif ( arguments.length > 3 ) {\n\t\toptions = arguments[ 3 ];\n\t\tif ( !isPlainObject( options ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t\t}\n\t\tif ( hasOwnProp( options, 'strict' ) ) {\n\t\t\tif ( !isBoolean( options.strict ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'strict', options.strict ) );\n\t\t\t}\n\t\t\topts.strict = options.strict;\n\t\t}\n\t}\n\treturn base( x, dim, slice, opts.strict, false );\n}\n\n\n// EXPORTS //\n\nmodule.exports = sliceDimension;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 read-only view of an input ndarray when sliced along a specified dimension.\n*\n* @module @stdlib/ndarray/slice-dimension\n*\n* @example\n* var Slice = require( '@stdlib/slice/ctor' );\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var sliceDimension = require( '@stdlib/ndarray/slice-dimension' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var s = new Slice( null, null, -1 );\n* // returns \n*\n* var y = sliceDimension( x, 0, s );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 3, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 5.0, 6.0 ], [ 3.0, 4.0 ], [ 1.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 isPlainObject = require( '@stdlib/assert/is-plain-object' );\nvar isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive;\nvar isInteger = require( '@stdlib/assert/is-integer' ).isPrimitive;\nvar isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar base = require( './../../base/slice-dimension-from' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns a read-only shifted view of an input ndarray along a specified dimension.\n*\n* @param {ndarray} x - input array\n* @param {integer} dim - index of dimension to slice\n* @param {integer} start - starting index (inclusive)\n* @param {Options} [options] - options\n* @param {boolean} [options.strict] - boolean indicating whether to enforce strict bounds checking\n* @throws {TypeError} first argument must be an ndarray having one or more dimensions\n* @throws {TypeError} second argument must be an integer\n* @throws {TypeError} third argument must be an integer\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {RangeError} dimension index exceeds the number of dimensions\n* @throws {RangeError} slice exceeds array bounds\n* @returns {ndarray} ndarray view\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = sliceDimensionFrom( x, 0, 1 );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*/\nfunction sliceDimensionFrom( x, dim, start ) {\n\tvar options;\n\tvar opts;\n\n\topts = {\n\t\t'strict': true\n\t};\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray. Value: `%s`.', x ) );\n\t}\n\tif ( !isInteger( dim ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', dim ) );\n\t}\n\tif ( !isInteger( start ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an integer. Value: `%s`.', start ) );\n\t}\n\tif ( arguments.length > 3 ) {\n\t\toptions = arguments[ 3 ];\n\t\tif ( !isPlainObject( options ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t\t}\n\t\tif ( hasOwnProp( options, 'strict' ) ) {\n\t\t\tif ( !isBoolean( options.strict ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'strict', options.strict ) );\n\t\t\t}\n\t\t\topts.strict = options.strict;\n\t\t}\n\t}\n\treturn base( x, dim, start, opts.strict, false );\n}\n\n\n// EXPORTS //\n\nmodule.exports = sliceDimensionFrom;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 read-only shifted view of an input ndarray along a specified dimension.\n*\n* @module @stdlib/ndarray/slice-dimension-from\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var sliceDimensionFrom = require( '@stdlib/ndarray/slice-dimension-from' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = sliceDimensionFrom( x, 0, 1 );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 3.0, 4.0 ], [ 5.0, 6.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 isPlainObject = require( '@stdlib/assert/is-plain-object' );\nvar isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive;\nvar isInteger = require( '@stdlib/assert/is-integer' ).isPrimitive;\nvar isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar base = require( './../../base/slice-dimension-to' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns a read-only truncated view of an input ndarray along a specified dimension.\n*\n* @param {ndarray} x - input array\n* @param {integer} dim - index of dimension to slice\n* @param {integer} stop - ending index (exclusive)\n* @param {Options} [options] - options\n* @param {boolean} [options.strict] - boolean indicating whether to enforce strict bounds checking\n* @throws {TypeError} first argument must be an ndarray having one or more dimensions\n* @throws {TypeError} second argument must be an integer\n* @throws {TypeError} third argument must be an integer\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {RangeError} dimension index exceeds the number of dimensions\n* @throws {RangeError} slice exceeds array bounds\n* @returns {ndarray} ndarray view\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = sliceDimensionTo( x, 0, 2 );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ]\n*/\nfunction sliceDimensionTo( x, dim, stop ) {\n\tvar options;\n\tvar opts;\n\n\topts = {\n\t\t'strict': true\n\t};\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray. Value: `%s`.', x ) );\n\t}\n\tif ( !isInteger( dim ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', dim ) );\n\t}\n\tif ( !isInteger( stop ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an integer. Value: `%s`.', stop ) );\n\t}\n\tif ( arguments.length > 3 ) {\n\t\toptions = arguments[ 3 ];\n\t\tif ( !isPlainObject( options ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t\t}\n\t\tif ( hasOwnProp( options, 'strict' ) ) {\n\t\t\tif ( !isBoolean( options.strict ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'strict', options.strict ) );\n\t\t\t}\n\t\t\topts.strict = options.strict;\n\t\t}\n\t}\n\treturn base( x, dim, stop, opts.strict, false );\n}\n\n\n// EXPORTS //\n\nmodule.exports = sliceDimensionTo;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 read-only truncated view of an input ndarray along a specified dimension.\n*\n* @module @stdlib/ndarray/slice-dimension-to\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var sliceDimensionTo = require( '@stdlib/ndarray/slice-dimension-to' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = sliceDimensionTo( x, 0, 2 );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* arr = ndarray2array( 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\t\"mode\": [ \"throw\" ],\n\t\"order\": \"row-major\"\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 isObject = require( '@stdlib/assert/is-plain-object' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar isArray = require( '@stdlib/assert/is-array' );\nvar isOrder = require( './../../base/assert/is-order' );\nvar isIndexMode = require( './../../base/assert/is-index-mode' );\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 {(StringArray|string)} [options.mode] - specifies how to handle subscripts which exceed array dimensions\n* @param {string} [options.order] - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'mode': 'throw',\n* 'order': 'column-major'\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tvar i;\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, 'mode' ) ) {\n\t\topts.mode = options.mode;\n\t\tif ( !isArray( opts.mode ) ) {\n\t\t\topts.mode = [ opts.mode ];\n\t\t} else if ( opts.mode.length === 0 ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option cannot be an empty array.', 'mode' ) );\n\t\t}\n\t\tfor ( i = 0; i < opts.mode.length; i++ ) {\n\t\t\tif ( !isIndexMode( opts.mode[ i ] ) ) {\n\t\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a supported/recognized mode. Option: `%s`.', 'mode', opts.mode[ i ] ) );\n\t\t\t}\n\t\t}\n\t}\n\tif ( hasOwnProp( options, 'order' ) ) {\n\t\topts.order = options.order;\n\t\tif ( !isOrder( opts.order ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a supported/recognized order. Option: `%s`.', 'order', opts.order ) );\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// MODULES //\n\nvar isNonNegativeIntegerArray = require( '@stdlib/assert/is-nonnegative-integer-array' ).primitives;\nvar isInteger = require( '@stdlib/assert/is-integer' ).isPrimitive;\nvar shape2strides = require( './../../base/shape2strides' );\nvar getIndex = require( './../../base/sub2ind' );\nvar format = require( '@stdlib/string/format' );\nvar defaults = require( './defaults.json' );\nvar validate = require( './validate.js' );\n\n\n// MAIN //\n\n/**\n* Converts subscripts to a linear index.\n*\n* ## Notes\n*\n* - The function accepts the following \"modes\":\n*\n* - **throw**: throw an error when a subscript exceeds array dimensions.\n* - **normalize**: normalize negative subscripts and throw an error when a subscript exceeds array dimensions.\n* - **wrap**: wrap around subscripts exceeding array dimensions using modulo arithmetic.\n* - **clamp**: set subscripts exceeding array dimensions to either `0` (minimum index) or the maximum index along a particular dimension.\n*\n* - If provided fewer modes than dimensions, the function recycles modes using modulo arithmetic.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {...integer} i - subscripts\n* @param {Options} [options] - function options\n* @param {(StringArray|string)} [options.mode=[\"throw\"]] - specifies how to handle subscripts which exceed array dimensions\n* @param {string} [options.order=\"row-major\"] - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @throws {TypeError} first argument must be an array-like object containing nonnegative integers\n* @throws {TypeError} subscripts must be integer valued\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {RangeError} must provide subscripts which do not exceed array dimensions\n* @throws {RangeError} number of subscripts much match the number of dimensions\n* @returns {NonNegativeInteger} linear index\n*\n* @example\n* var i = sub2ind( [ 3, 3, 3 ], 1, 2, 2 );\n* // returns 17\n*/\nfunction sub2ind() {\n\tvar options;\n\tvar shape;\n\tvar ndims;\n\tvar args;\n\tvar opts;\n\tvar err;\n\tvar len;\n\tvar i;\n\tvar j;\n\n\tshape = arguments[ 0 ];\n\tif ( !isNonNegativeIntegerArray( shape ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object containing nonnegative integers. Value: `%s`.', shape ) );\n\t}\n\tlen = arguments.length;\n\tndims = shape.length;\n\n\topts = {};\n\topts.mode = defaults.mode.slice();\n\topts.order = defaults.order;\n\n\tif ( len > ndims+1 ) {\n\t\tj = len - 1;\n\t\toptions = arguments[ j ];\n\t\terr = validate( opts, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t} else {\n\t\tj = len;\n\t}\n\ti = 1;\n\tif ( j-i !== ndims ) {\n\t\tthrow new RangeError( format( 'invalid argument. Number of provided subscripts must match the number of dimensions. ndims: `%u`. Number of subscripts: `%u`.', ndims, j-i ) );\n\t}\n\targs = new Array( ndims+4 );\n\targs[ 0 ] = shape;\n\targs[ 1 ] = shape2strides( shape, opts.order );\n\targs[ 2 ] = 0; // strides are positive, so offset is always zero\n\tfor ( ; i < j; i++ ) {\n\t\tif ( !isInteger( arguments[ i ] ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Subscripts must be integer valued. Argument: `%u`. Value: `%s`.', i, arguments[ i ] ) );\n\t\t}\n\t\targs[ i+2 ] = arguments[ i ];\n\t}\n\targs[ i+2 ] = opts.mode; // i+2 == args.length-1\n\treturn getIndex.apply( null, args );\n}\n\n\n// EXPORTS //\n\nmodule.exports = sub2ind;\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 subscripts to a linear index.\n*\n* @module @stdlib/ndarray/sub2ind\n*\n* @example\n* var sub2ind = require( '@stdlib/ndarray/sub2ind' );\n*\n* var i = sub2ind( [ 3, 3, 3 ], 1, 2, 2 );\n* // returns 17\n*/\n\n// MODULES //\n\nvar sub2ind = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = sub2ind;\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 isPlainObject = require( '@stdlib/assert/is-plain-object' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar isArrayLike = require( '@stdlib/assert/is-array-like' );\nvar shape2strides = require( './../../base/shape2strides' );\nvar strides2offset = require( './../../base/strides2offset' );\nvar buffer = require( './../../base/buffer' );\nvar numel = require( './../../base/numel' );\nvar ndarray = require( './../../ctor' );\nvar defaults = require( './../../defaults' );\nvar format = require( '@stdlib/string/format' );\n\n\n// VARIABLES //\n\nvar DTYPE = defaults.get( 'dtypes.default' );\nvar ORDER = defaults.get( 'order' );\n\n\n// MAIN //\n\n/**\n* Creates a zero-filled ndarray having a specified shape and data type.\n*\n* @param {(NonNegativeIntegerArray|NonNegativeInteger)} shape - array shape\n* @param {Options} [options] - options\n* @param {string} [options.dtype='float64'] - data type\n* @param {string} [options.order='row-major'] - array order\n* @param {string} [options.mode=\"throw\"] - specifies how to handle indices which exceed array dimensions\n* @param {StringArray} [options.submode=[\"throw\"]] - specifies how to handle subscripts which exceed array dimensions on a per dimension basis\n* @param {boolean} [options.readonly=false] - boolean indicating whether an array should be read-only\n* @throws {TypeError} first argument must be either a nonnegative integer or an array of nonnegative integers\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} `dtype` option must be a recognized data type\n* @throws {TypeError} `order` option must be a recognized array order\n* @throws {TypeError} must provide valid options\n* @returns {ndarray} ndarray\n*\n* @example\n* var arr = zeros( [ 2, 2 ] );\n* // returns \n*\n* var sh = arr.shape;\n* // returns [ 2, 2 ]\n*\n* var dt = arr.dtype;\n* // returns 'float64'\n*/\nfunction zeros( shape ) {\n\tvar options;\n\tvar dtype;\n\tvar order;\n\tvar ndims;\n\tvar opts;\n\tvar buf;\n\tvar len;\n\tvar st;\n\tvar sh;\n\n\topts = {};\n\tif ( arguments.length > 1 ) {\n\t\toptions = arguments[ 1 ];\n\t\tif ( !isPlainObject( options ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t\t}\n\t\tif ( hasOwnProp( options, 'dtype' ) ) {\n\t\t\tdtype = options.dtype;\n\t\t} else {\n\t\t\tdtype = DTYPE;\n\t\t}\n\t\tif ( hasOwnProp( options, 'order' ) ) {\n\t\t\torder = options.order;\n\t\t} else {\n\t\t\torder = ORDER;\n\t\t}\n\t\tif ( hasOwnProp( options, 'mode' ) ) {\n\t\t\topts.mode = options.mode;\n\t\t}\n\t\tif ( hasOwnProp( options, 'submode' ) ) {\n\t\t\topts.submode = options.submode;\n\t\t}\n\t\tif ( hasOwnProp( options, 'readonly' ) ) {\n\t\t\topts.readonly = options.readonly;\n\t\t}\n\t} else {\n\t\tdtype = DTYPE;\n\t\torder = ORDER;\n\t}\n\tif ( typeof shape === 'number' ) {\n\t\tsh = [ shape ];\n\t} else if ( isArrayLike( shape ) ) {\n\t\tsh = shape;\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be either a nonnegative integer or an array of nonnegative integers. Value: `%s`.', shape ) );\n\t}\n\tndims = sh.length;\n\tif ( ndims > 0 ) {\n\t\tlen = numel( sh );\n\t\tif ( len !== len || len < 0 ) {\n\t\t\t// We should only get here if we've been provided an invalid shape (e.g., an array containing negative integers, etc)...\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be either a nonnegative integer or an array of nonnegative integers. Value: `%s`.', shape ) );\n\t\t}\n\t\tst = shape2strides( sh, order );\n\t} else {\n\t\t// For 0-dimensional arrays, the buffer should contain a single element...\n\t\tlen = 1;\n\t\tst = [ 0 ];\n\t}\n\tbuf = buffer( dtype, len );\n\tif ( buf === null ) {\n\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a recognized data type. Option: `%s`.', 'dtype', dtype ) );\n\t}\n\treturn new ndarray( dtype, buf, sh, st, strides2offset( sh, st ), order, opts ); // eslint-disable-line max-len\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 ndarray having a specified shape and data type.\n*\n* @module @stdlib/ndarray/zeros\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n*\n* var arr = zeros( [ 2, 2 ], {\n* 'dtype': 'float32'\n* });\n* // returns \n*\n* var sh = arr.shape;\n* // returns [ 2, 2 ]\n*\n* var dt = arr.dtype;\n* // returns 'float32'\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 isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );\nvar isPlainObject = require( '@stdlib/assert/is-plain-object' );\nvar isNonNegativeIntegerArray = require( '@stdlib/assert/is-nonnegative-integer-array' ).primitives;\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar shape2strides = require( './../../base/shape2strides' );\nvar strides2offset = require( './../../base/strides2offset' );\nvar buffer = require( './../../base/buffer' );\nvar numel = require( './../../base/numel' );\nvar getDType = require( './../../dtype' );\nvar getShape = require( './../../shape' );\nvar getOrder = require( './../../order' );\nvar ndarray = require( './../../ctor' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Creates a zero-filled ndarray having the same shape and data type as a provided ndarray.\n*\n* @param {ndarray} x - input array\n* @param {Options} [options] - function options\n* @param {string} [options.dtype] - output array data type (overrides the input array's inferred data type)\n* @param {string} [options.order] - specifies whether the output array should be 'row-major' (C-style) or 'column-major' (Fortran-style) (overrides the input array's inferred order)\n* @param {(NonNegativeIntegerArray|NonNegativeInteger)} [options.shape] - output array shape (overrides the input array's inferred shape)\n* @param {string} [options.mode=\"throw\"] - specifies how to handle indices which exceed array dimensions\n* @param {StringArray} [options.submode=[\"throw\"]] - specifies how to handle subscripts which exceed array dimensions on a per dimension basis\n* @param {boolean} [options.readonly=false] - boolean indicating whether an array should be read-only\n* @throws {TypeError} first argument must have a recognized data type\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} `dtype` option must be a supported ndarray data type\n* @throws {TypeError} `order` option must be a supported order\n* @throws {TypeError} `shape` option must be either a nonnegative integer or an array of nonnegative integers\n* @throws {TypeError} must provide valid options\n* @returns {ndarray} ndarray\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n*\n* var x = zeros( [ 2, 2 ] );\n* // returns \n*\n* var y = zerosLike( x );\n* // returns \n*\n* var sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* var dt = y.dtype;\n* // returns 'float64'\n*/\nfunction zerosLike( x ) {\n\tvar options;\n\tvar dtype;\n\tvar order;\n\tvar ndims;\n\tvar opts;\n\tvar buf;\n\tvar len;\n\tvar st;\n\tvar sh;\n\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray-like object. Value: `%s`.', x ) );\n\t}\n\topts = {};\n\tif ( arguments.length > 1 ) {\n\t\toptions = arguments[ 1 ];\n\t\tif ( !isPlainObject( options ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t\t}\n\t\tif ( hasOwnProp( options, 'dtype' ) ) {\n\t\t\tdtype = options.dtype;\n\t\t} else {\n\t\t\tdtype = getDType( x );\n\t\t}\n\t\tif ( hasOwnProp( options, 'shape' ) ) {\n\t\t\tsh = options.shape;\n\t\t\tif ( typeof sh === 'number' ) {\n\t\t\t\tsh = [ sh ];\n\t\t\t}\n\t\t\tif ( !isNonNegativeIntegerArray( sh ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a nonnegative integer or an array of nonnegative integers. Option: `%s`.', 'shape', sh ) );\n\t\t\t}\n\t\t} else {\n\t\t\tsh = getShape( x );\n\t\t}\n\t\tif ( hasOwnProp( options, 'order' ) ) {\n\t\t\torder = options.order;\n\t\t} else {\n\t\t\torder = getOrder( x );\n\t\t}\n\t\tif ( hasOwnProp( options, 'mode' ) ) {\n\t\t\topts.mode = options.mode;\n\t\t}\n\t\tif ( hasOwnProp( options, 'submode' ) ) {\n\t\t\topts.submode = options.submode;\n\t\t}\n\t\tif ( hasOwnProp( options, 'readonly' ) ) {\n\t\t\topts.readonly = options.readonly;\n\t\t}\n\t} else {\n\t\tdtype = getDType( x );\n\t\tsh = getShape( x );\n\t\torder = getOrder( x );\n\t}\n\tndims = sh.length;\n\tif ( ndims > 0 ) {\n\t\tlen = numel( sh );\n\t\tst = shape2strides( sh, order );\n\t} else {\n\t\t// For 0-dimensional arrays, the buffer should contain a single element...\n\t\tlen = 1;\n\t\tst = [ 0 ];\n\t}\n\tbuf = buffer( dtype, len );\n\tif ( buf === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must have a recognized data type. Value: `%s`.', dtype ) );\n\t}\n\treturn new ndarray( dtype, buf, sh, st, strides2offset( sh, st ), order, opts ); // eslint-disable-line max-len\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 ndarray having the same shape and data type as a provided ndarray.\n*\n* @module @stdlib/ndarray/zeros-like\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n* var zerosLike = require( '@stdlib/ndarray/zeros-like' );\n*\n* var x = zeros( [ 2, 2 ] );\n* // returns \n*\n* var y = zerosLike( x );\n* // returns \n*\n* var sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* var dt = y.dtype;\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) 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// 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 array\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/array}\n*/\nsetReadOnly( ns, 'array', require( './../array' ) );\n\n/**\n* @name base\n* @memberof ns\n* @readonly\n* @type {Namespace}\n* @see {@link module:@stdlib/ndarray/base}\n*/\nsetReadOnly( ns, 'base', require( './../base' ) );\n\n/**\n* @name broadcastArray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/broadcast-array}\n*/\nsetReadOnly( ns, 'broadcastArray', require( './../broadcast-array' ) );\n\n/**\n* @name ndarrayCastingModes\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/casting-modes}\n*/\nsetReadOnly( ns, 'ndarrayCastingModes', require( './../casting-modes' ) );\n\n/**\n* @name ndarray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/ctor}\n*/\nsetReadOnly( ns, 'ndarray', require( './../ctor' ) );\n\n/**\n* @name ndarrayDataBuffer\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/data-buffer}\n*/\nsetReadOnly( ns, 'ndarrayDataBuffer', require( './../data-buffer' ) );\n\n/**\n* @name defaults\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/defaults}\n*/\nsetReadOnly( ns, 'defaults', require( './../defaults' ) );\n\n/**\n* @name dispatch\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/dispatch}\n*/\nsetReadOnly( ns, 'dispatch', require( './../dispatch' ) );\n\n/**\n* @name ndarrayDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/dtype}\n*/\nsetReadOnly( ns, 'ndarrayDataType', require( './../dtype' ) );\n\n/**\n* @name ndarrayDataTypes\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/dtypes}\n*/\nsetReadOnly( ns, 'ndarrayDataTypes', require( './../dtypes' ) );\n\n/**\n* @name ndempty\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/empty}\n*/\nsetReadOnly( ns, 'ndempty', require( './../empty' ) );\n\n/**\n* @name ndemptyLike\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/empty-like}\n*/\nsetReadOnly( ns, 'ndemptyLike', require( './../empty-like' ) );\n\n/**\n* @name FancyArray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/fancy}\n*/\nsetReadOnly( ns, 'FancyArray', require( './../fancy' ) );\n\n/**\n* @name scalar2ndarray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/from-scalar}\n*/\nsetReadOnly( ns, 'scalar2ndarray', require( './../from-scalar' ) );\n\n/**\n* @name ind2sub\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/ind2sub}\n*/\nsetReadOnly( ns, 'ind2sub', require( './../ind2sub' ) );\n\n/**\n* @name ndarrayIndexModes\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/index-modes}\n*/\nsetReadOnly( ns, 'ndarrayIndexModes', require( './../index-modes' ) );\n\n/**\n* @name iter\n* @memberof ns\n* @readonly\n* @type {Namespace}\n* @see {@link module:@stdlib/ndarray/iter}\n*/\nsetReadOnly( ns, 'iter', require( './../iter' ) );\n\n/**\n* @name maybeBroadcastArray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/maybe-broadcast-array}\n*/\nsetReadOnly( ns, 'maybeBroadcastArray', require( './../maybe-broadcast-array' ) );\n\n/**\n* @name ndarrayMinDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/min-dtype}\n*/\nsetReadOnly( ns, 'ndarrayMinDataType', require( './../min-dtype' ) );\n\n/**\n* @name ndarrayMostlySafeCasts\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/mostly-safe-casts}\n*/\nsetReadOnly( ns, 'ndarrayMostlySafeCasts', require( './../mostly-safe-casts' ) );\n\n/**\n* @name ndims\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/ndims}\n*/\nsetReadOnly( ns, 'ndims', require( './../ndims' ) );\n\n/**\n* @name ndarrayNextDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/next-dtype}\n*/\nsetReadOnly( ns, 'ndarrayNextDataType', require( './../next-dtype' ) );\n\n/**\n* @name numel\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/numel}\n*/\nsetReadOnly( ns, 'numel', require( './../numel' ) );\n\n/**\n* @name ndarrayOffset\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/offset}\n*/\nsetReadOnly( ns, 'ndarrayOffset', require( './../offset' ) );\n\n/**\n* @name ndarrayOrder\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/order}\n*/\nsetReadOnly( ns, 'ndarrayOrder', require( './../order' ) );\n\n/**\n* @name ndarrayOrders\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/orders}\n*/\nsetReadOnly( ns, 'ndarrayOrders', require( './../orders' ) );\n\n/**\n* @name ndarrayOutputDataTypePolicies\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/output-dtype-policies}\n*/\nsetReadOnly( ns, 'ndarrayOutputDataTypePolicies', require( './../output-dtype-policies' ) );\n\n/**\n* @name ndarrayPromotionRules\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/promotion-rules}\n*/\nsetReadOnly( ns, 'ndarrayPromotionRules', require( './../promotion-rules' ) );\n\n/**\n* @name ndarraySafeCasts\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/safe-casts}\n*/\nsetReadOnly( ns, 'ndarraySafeCasts', require( './../safe-casts' ) );\n\n/**\n* @name ndarraySameKindCasts\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/same-kind-casts}\n*/\nsetReadOnly( ns, 'ndarraySameKindCasts', require( './../same-kind-casts' ) );\n\n/**\n* @name ndarrayShape\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/shape}\n*/\nsetReadOnly( ns, 'ndarrayShape', require( './../shape' ) );\n\n/**\n* @name ndslice\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/slice}\n*/\nsetReadOnly( ns, 'ndslice', require( './../slice' ) );\n\n/**\n* @name ndsliceAssign\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/slice-assign}\n*/\nsetReadOnly( ns, 'ndsliceAssign', require( './../slice-assign' ) );\n\n/**\n* @name ndsliceDimension\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/slice-dimension}\n*/\nsetReadOnly( ns, 'ndsliceDimension', require( './../slice-dimension' ) );\n\n/**\n* @name ndsliceDimensionFrom\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/slice-dimension-from}\n*/\nsetReadOnly( ns, 'ndsliceDimensionFrom', require( './../slice-dimension-from' ) );\n\n/**\n* @name ndsliceDimensionTo\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/slice-dimension-to}\n*/\nsetReadOnly( ns, 'ndsliceDimensionTo', require( './../slice-dimension-to' ) );\n\n/**\n* @name ndarrayStrides\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/strides}\n*/\nsetReadOnly( ns, 'ndarrayStrides', require( './../strides' ) );\n\n/**\n* @name sub2ind\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/sub2ind}\n*/\nsetReadOnly( ns, 'sub2ind', require( './../sub2ind' ) );\n\n/**\n* @name ndarray2array\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/to-array}\n*/\nsetReadOnly( ns, 'ndarray2array', require( './../to-array' ) );\n\n/**\n* @name ndzeros\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/zeros}\n*/\nsetReadOnly( ns, 'ndzeros', require( './../zeros' ) );\n\n/**\n* @name ndzerosLike\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/zeros-like}\n*/\nsetReadOnly( ns, 'ndzerosLike', require( './../zeros-like' ) );\n\n\n// EXPORTS //\n\nmodule.exports = ns;\n"], - "mappings": "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,EAAIe,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKf,EAAIe,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKf,EAAIe,KACtBnD,EAAMkD,EAAG,EAAInD,EAAMkD,EAAG,EACtBA,IAAMhD,EACNiD,IAAMxC,EAEPuC,IAAM/C,EACNgD,IAAMvC,CACP,CACAsC,IAAM9C,EACN+C,IAAMtC,CACP,CACAqC,IAAM7C,EACN8C,IAAMrC,CACP,CACAoC,IAAM5C,EACN6C,IAAMpC,CACP,CACAmC,IAAM3C,EACN4C,IAAMnC,CACP,CACAkC,IAAM1C,EACN2C,IAAMlC,CACP,CACAiC,IAAMzC,EACN0C,IAAMjC,CACP,CACAgC,IAAMxC,EACNyC,IAAMhC,CACP,CAUV,CAKA1B,GAAO,QAAUG,KChWjB,IAAA2E,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAwBA,IAAIC,GAAY,KACZC,GAAY,KAmEhB,SAASC,GAAkBC,EAAGC,EAAI,CACjC,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GA0BJ,IArBAA,GAAInF,GAAWG,EAAE,MAAOA,EAAE,QAASC,EAAE,OAAQ,EAC7C0C,EAAKqC,GAAE,GACP1B,GAAK0B,GAAE,GACPzB,GAAKyB,GAAE,GAGP9E,EAAQJ,GAAWE,EAAE,MAAOC,EAAE,KAAM,EAGpCuD,GAAKxD,EAAE,OACPyD,GAAKxD,EAAE,OAGPE,EAAOH,EAAE,KACTI,EAAOH,EAAE,KAGTI,EAAMiD,GAAG,CAAC,EACVvC,EAAMwC,GAAG,CAAC,EAGJwB,GAAKpC,EAAG,CAAC,EAAGoC,GAAK,GAUtB,IATKA,GAAK7E,GACTmD,GAAK0B,GACLA,GAAK,IAEL1B,GAAKnD,EACL6E,IAAM7E,GAEP+B,EAAMuB,GAAOuB,GAAGzB,GAAG,CAAC,EACpBZ,EAAMe,GAAOsB,GAAGxB,GAAG,CAAC,EACduB,GAAKnC,EAAG,CAAC,EAAGmC,GAAK,GAYtB,IAXKA,GAAK5E,GACTkD,EAAK0B,GACLA,GAAK,IAEL1B,EAAKlD,EACL4E,IAAM5E,GAEPY,EAAMwC,GAAG,CAAC,EAAMF,EAAGE,GAAG,CAAC,EACvB9B,EAAM+B,GAAG,CAAC,EAAMH,EAAGG,GAAG,CAAC,EACvBvB,EAAMC,EAAQ6C,GAAGxB,GAAG,CAAC,EACrBb,EAAMC,EAAQoC,GAAGvB,GAAG,CAAC,EACfsB,GAAKlC,EAAG,CAAC,EAAGkC,GAAK,GAYtB,IAXKA,GAAK3E,GACTiD,EAAK0B,GACLA,GAAK,IAEL1B,EAAKjD,EACL2E,IAAM3E,GAEPW,EAAMyC,GAAG,CAAC,EAAMH,EAAGG,GAAG,CAAC,EACvB/B,EAAMgC,GAAG,CAAC,EAAMJ,EAAGI,GAAG,CAAC,EACvBxB,EAAMC,EAAQ6C,GAAGvB,GAAG,CAAC,EACrBd,EAAMC,EAAQoC,GAAGtB,GAAG,CAAC,EACfqB,GAAKjC,EAAG,CAAC,EAAGiC,GAAK,GAYtB,IAXKA,GAAK1E,GACTgD,EAAK0B,GACLA,GAAK,IAEL1B,EAAKhD,EACL0E,IAAM1E,GAEPU,EAAM0C,GAAG,CAAC,EAAMJ,EAAGI,GAAG,CAAC,EACvBhC,EAAMiC,GAAG,CAAC,EAAML,EAAGK,GAAG,CAAC,EACvBzB,EAAMC,EAAQ6C,GAAGtB,GAAG,CAAC,EACrBf,EAAMC,EAAQoC,GAAGrB,GAAG,CAAC,EACfoB,GAAKhC,EAAG,CAAC,EAAGgC,GAAK,GAYtB,IAXKA,GAAKzE,GACT+C,EAAK0B,GACLA,GAAK,IAEL1B,EAAK/C,EACLyE,IAAMzE,GAEPS,EAAM2C,GAAG,CAAC,EAAML,EAAGK,GAAG,CAAC,EACvBjC,EAAMkC,GAAG,CAAC,EAAMN,EAAGM,GAAG,CAAC,EACvB1B,EAAMC,EAAQ6C,GAAGrB,GAAG,CAAC,EACrBhB,EAAMC,EAAQoC,GAAGpB,GAAG,CAAC,EACfmB,GAAK/B,EAAG,CAAC,EAAG+B,GAAK,GAYtB,IAXKA,GAAKxE,GACT8C,EAAK0B,GACLA,GAAK,IAEL1B,EAAK9C,EACLwE,IAAMxE,GAEPQ,EAAM4C,GAAG,CAAC,EAAMN,EAAGM,GAAG,CAAC,EACvBlC,EAAMmC,GAAG,CAAC,EAAMP,EAAGO,GAAG,CAAC,EACvB3B,EAAMC,EAAQ6C,GAAGpB,GAAG,CAAC,EACrBjB,EAAMC,EAAQoC,GAAGnB,GAAG,CAAC,EACfkB,GAAK9B,EAAG,CAAC,EAAG8B,GAAK,GAYtB,IAXKA,GAAKvE,GACT6C,EAAK0B,GACLA,GAAK,IAEL1B,EAAK7C,EACLuE,IAAMvE,GAEPO,EAAM6C,GAAG,CAAC,EAAMP,EAAGO,GAAG,CAAC,EACvBnC,EAAMoC,GAAG,CAAC,EAAMR,EAAGQ,GAAG,CAAC,EACvB5B,EAAMC,EAAQ6C,GAAGnB,GAAG,CAAC,EACrBlB,EAAMC,EAAQoC,GAAGlB,GAAG,CAAC,EACfiB,GAAK7B,EAAG,CAAC,EAAG6B,GAAK,GAYtB,IAXKA,GAAKtE,GACT4C,EAAK0B,GACLA,GAAK,IAEL1B,EAAK5C,EACLsE,IAAMtE,GAEPM,EAAM8C,GAAG,CAAC,EAAMR,EAAGQ,GAAG,CAAC,EACvBpC,EAAMqC,GAAG,CAAC,EAAMT,EAAGS,GAAG,CAAC,EACvB7B,EAAMC,EAAQ6C,GAAGlB,GAAG,CAAC,EACrBnB,EAAMC,EAAQoC,GAAGjB,GAAG,CAAC,EACfgB,GAAK5B,EAAG,CAAC,EAAG4B,GAAK,GAYtB,IAXKA,GAAKrE,GACT2C,EAAK0B,GACLA,GAAK,IAEL1B,EAAK3C,EACLqE,IAAMrE,GAEPK,EAAM+C,GAAG,CAAC,EAAMT,EAAGS,GAAG,CAAC,EACvBrC,EAAMsC,GAAG,CAAC,EAAMV,EAAGU,GAAG,CAAC,EACvB9B,EAAMC,EAAQ6C,GAAGjB,GAAG,CAAC,EACrBpB,EAAMC,EAAQoC,GAAGhB,GAAG,CAAC,EACfe,GAAK3B,EAAG,CAAC,EAAG2B,GAAK,GAiBtB,IAhBKA,GAAKpE,GACT0C,EAAK0B,GACLA,GAAK,IAEL1B,EAAK1C,EACLoE,IAAMpE,GAGPwD,GAAKjC,EAAQ6C,GAAGhB,GAAG,CAAC,EACpBK,GAAKzB,EAAQoC,GAAGf,GAAG,CAAC,EAGpBjD,EAAMgD,GAAG,CAAC,EAAMV,EAAGU,GAAG,CAAC,EACvBtC,EAAMuC,GAAG,CAAC,EAAMX,EAAGW,GAAG,CAAC,EAGjBc,GAAK,EAAGA,GAAKhB,GAAIgB,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKhB,EAAIgB,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKhB,EAAIgB,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKhB,EAAIgB,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKhB,EAAIgB,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKhB,EAAIgB,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKhB,EAAIgB,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKhB,EAAIgB,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKhB,EAAIgB,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKhB,EAAIgB,KACtBxD,EAAMuD,EAAG,EAAIxD,EAAMuD,EAAG,EACtBA,IAAMrD,EACNsD,IAAM5C,EAEP2C,IAAMpD,EACNqD,IAAM3C,CACP,CACA0C,IAAMnD,EACNoD,IAAM1C,CACP,CACAyC,IAAMlD,EACNmD,IAAMzC,CACP,CACAwC,IAAMjD,EACNkD,IAAMxC,CACP,CACAuC,IAAMhD,EACNiD,IAAMvC,CACP,CACAsC,IAAM/C,EACNgD,IAAMtC,CACP,CACAqC,IAAM9C,EACN+C,IAAMrC,CACP,CACAoC,IAAM7C,EACN8C,IAAMpC,CACP,CACAmC,IAAM5C,EACN6C,IAAMnC,CACP,CAWX,CAKA5B,GAAO,QAAUG,KCxXjB,IAAAkF,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAyGA,SAASC,GAAUC,EAAGC,EAAI,CACzBA,EAAE,UAAW,CAAE,EAAGA,EAAE,KAAMA,EAAE,OAAQD,EAAE,UAAW,CAAE,EAAGA,EAAE,KAAMA,EAAE,MAAO,CAAE,CAC1E,CAKAF,GAAO,QAAUC,KChHjB,IAAAG,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAyGA,SAASC,GAAUC,EAAGC,EAAI,CACzB,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAsBJ,IAjBAH,EAAKR,EAAE,MAAO,CAAE,EAChBM,EAAMN,EAAE,QAAS,CAAE,EACnBO,EAAMN,EAAE,QAAS,CAAE,EAGnBQ,EAAKT,EAAE,OACPU,EAAKT,EAAE,OAGPC,EAAOF,EAAE,KACTG,EAAOF,EAAE,KAGTG,EAAMJ,EAAE,UAAW,CAAE,EACrBK,EAAMJ,EAAE,UAAW,CAAE,EAGfU,EAAK,EAAGA,EAAKH,EAAIG,IACtBN,EAAKF,EAAMO,EAAIN,EAAKF,EAAMO,CAAG,CAAE,EAC/BA,GAAMH,EACNI,GAAMH,CAER,CAKAT,GAAO,QAAUC,KCnJjB,IAAAa,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAyGA,SAASC,GAAUC,EAAGC,EAAI,CACzB,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAsCJ,IAjCAR,EAAKV,EAAE,MACPa,EAAKb,EAAE,QACPc,EAAKb,EAAE,QACFD,EAAE,QAAU,aAEhBW,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXJ,EAAMO,EAAI,CAAE,EACZN,EAAMM,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBL,EAAMM,EAAI,CAAE,EACZL,EAAMK,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,IAGzBH,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXJ,EAAMO,EAAI,CAAE,EACZN,EAAMM,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBL,EAAMM,EAAI,CAAE,EACZL,EAAMK,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,GAG1BC,EAAKf,EAAE,OACPgB,EAAKf,EAAE,OAGPC,EAAOF,EAAE,KACTG,EAAOF,EAAE,KAGTG,EAAMJ,EAAE,UAAW,CAAE,EACrBK,EAAMJ,EAAE,UAAW,CAAE,EAGfiB,EAAK,EAAGA,EAAKN,EAAIM,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKN,EAAIM,IACtBZ,EAAKF,EAAMa,EAAIZ,EAAKF,EAAMa,CAAG,CAAE,EAC/BA,GAAMT,EACNU,GAAMR,EAEPO,GAAMR,EACNS,GAAMP,CACP,CACD,CAKAX,GAAO,QAAUC,KC9KjB,IAAAoB,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAyGA,SAASC,GAAUC,EAAGC,EAAI,CACzB,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EA4CJ,IAvCAV,EAAKZ,EAAE,MACPgB,EAAKhB,EAAE,QACPiB,EAAKhB,EAAE,QACFD,EAAE,QAAU,aAEhBa,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXN,EAAMU,EAAI,CAAE,EACZT,EAAMS,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBR,EAAMQ,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBP,EAAMQ,EAAI,CAAE,EACZP,EAAMO,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBN,EAAMM,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,IAGzBJ,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXN,EAAMU,EAAI,CAAE,EACZT,EAAMS,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBR,EAAMQ,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBP,EAAMQ,EAAI,CAAE,EACZP,EAAMO,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBN,EAAMM,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,GAG1BC,EAAKlB,EAAE,OACPmB,EAAKlB,EAAE,OAGPC,EAAOF,EAAE,KACTG,EAAOF,EAAE,KAGTG,EAAMJ,EAAE,UAAW,CAAE,EACrBK,EAAMJ,EAAE,UAAW,CAAE,EAGfqB,EAAK,EAAGA,EAAKP,EAAIO,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKP,EAAIO,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKP,EAAIO,IACtBf,EAAKF,EAAMgB,EAAIf,EAAKF,EAAMgB,CAAG,CAAE,EAC/BA,GAAMZ,EACNa,GAAMV,EAEPS,GAAMX,EACNY,GAAMT,CACP,CACAQ,GAAMV,EACNW,GAAMR,CACP,CACD,CAKAb,GAAO,QAAUC,KC5LjB,IAAAwB,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAyGA,SAASC,GAAUC,EAAGC,EAAI,CACzB,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAkDJ,IA7CAZ,EAAKd,EAAE,MACPmB,EAAKnB,EAAE,QACPoB,EAAKnB,EAAE,QACFD,EAAE,QAAU,aAEhBe,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXR,EAAMa,EAAI,CAAE,EACZZ,EAAMY,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBV,EAAMU,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBT,EAAMU,EAAI,CAAE,EACZT,EAAMS,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBR,EAAMQ,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBP,EAAMO,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,IAGzBL,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXR,EAAMa,EAAI,CAAE,EACZZ,EAAMY,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBV,EAAMU,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBT,EAAMU,EAAI,CAAE,EACZT,EAAMS,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBR,EAAMQ,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBP,EAAMO,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,GAG1BC,EAAKrB,EAAE,OACPsB,EAAKrB,EAAE,OAGPC,EAAOF,EAAE,KACTG,EAAOF,EAAE,KAGTG,EAAMJ,EAAE,UAAW,CAAE,EACrBK,EAAMJ,EAAE,UAAW,CAAE,EAGfyB,EAAK,EAAGA,EAAKR,EAAIQ,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKR,EAAIQ,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKR,EAAIQ,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKR,EAAIQ,IACtBlB,EAAKF,EAAMmB,EAAIlB,EAAKF,EAAMmB,CAAG,CAAE,EAC/BA,GAAMf,EACNgB,GAAMZ,EAEPW,GAAMd,EACNe,GAAMX,CACP,CACAU,GAAMb,EACNc,GAAMV,CACP,CACAS,GAAMZ,EACNa,GAAMT,CACP,CACD,CAKAf,GAAO,QAAUC,KC1MjB,IAAA4B,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAyGA,SAASC,GAAUC,EAAGC,EAAI,CACzB,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAwDJ,IAnDAd,EAAKhB,EAAE,MACPsB,EAAKtB,EAAE,QACPuB,EAAKtB,EAAE,QACFD,EAAE,QAAU,aAEhBiB,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXV,EAAMgB,EAAI,CAAE,EACZf,EAAMe,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBX,EAAMY,EAAI,CAAE,EACZX,EAAMW,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBV,EAAMU,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBT,EAAMS,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBR,EAAMQ,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,IAGzBN,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXV,EAAMgB,EAAI,CAAE,EACZf,EAAMe,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBX,EAAMY,EAAI,CAAE,EACZX,EAAMW,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBV,EAAMU,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBT,EAAMS,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBR,EAAMQ,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,GAG1BC,EAAKxB,EAAE,OACPyB,EAAKxB,EAAE,OAGPC,EAAOF,EAAE,KACTG,EAAOF,EAAE,KAGTG,EAAMJ,EAAE,UAAW,CAAE,EACrBK,EAAMJ,EAAE,UAAW,CAAE,EAGf6B,EAAK,EAAGA,EAAKT,EAAIS,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKT,EAAIS,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKT,EAAIS,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKT,EAAIS,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKT,EAAIS,IACtBrB,EAAKF,EAAMsB,EAAIrB,EAAKF,EAAMsB,CAAG,CAAE,EAC/BA,GAAMlB,EACNmB,GAAMd,EAEPa,GAAMjB,EACNkB,GAAMb,CACP,CACAY,GAAMhB,EACNiB,GAAMZ,CACP,CACAW,GAAMf,EACNgB,GAAMX,CACP,CACAU,GAAMd,EACNe,GAAMV,CACP,CACD,CAKAjB,GAAO,QAAUC,KCxNjB,IAAAgC,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cA2GA,SAASC,GAAUC,EAAGC,EAAI,CACzB,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EA8DJ,IAzDAhB,EAAKlB,EAAE,MACPyB,EAAKzB,EAAE,QACP0B,EAAKzB,EAAE,QACFD,EAAE,QAAU,aAEhBmB,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXZ,EAAMmB,EAAI,CAAE,EACZlB,EAAMkB,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBjB,EAAMiB,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBf,EAAMe,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBb,EAAMc,EAAI,CAAE,EACZb,EAAMa,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBV,EAAMU,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBT,EAAMS,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,IAGzBP,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXZ,EAAMmB,EAAI,CAAE,EACZlB,EAAMkB,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBjB,EAAMiB,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBf,EAAMe,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBb,EAAMc,EAAI,CAAE,EACZb,EAAMa,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBV,EAAMU,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBT,EAAMS,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,GAG1BC,EAAK3B,EAAE,OACP4B,EAAK3B,EAAE,OAGPC,EAAOF,EAAE,KACTG,EAAOF,EAAE,KAGTG,EAAMJ,EAAE,UAAW,CAAE,EACrBK,EAAMJ,EAAE,UAAW,CAAE,EAGfiC,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IACtBxB,EAAKF,EAAMyB,EAAIxB,EAAKF,EAAMyB,CAAG,CAAE,EAC/BA,GAAMrB,EACNsB,GAAMhB,EAEPe,GAAMpB,EACNqB,GAAMf,CACP,CACAc,GAAMnB,EACNoB,GAAMd,CACP,CACAa,GAAMlB,EACNmB,GAAMb,CACP,CACAY,GAAMjB,EACNkB,GAAMZ,CACP,CACAW,GAAMhB,EACNiB,GAAMX,CACP,CACD,CAKAnB,GAAO,QAAUC,KCxOjB,IAAAoC,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cA2GA,SAASC,GAAUC,EAAGC,EAAI,CACzB,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAoEJ,IA/DAlB,EAAKpB,EAAE,MACP4B,EAAK5B,EAAE,QACP6B,EAAK5B,EAAE,QACFD,EAAE,QAAU,aAEhBqB,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXd,EAAMsB,EAAI,CAAE,EACZrB,EAAMqB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBpB,EAAMoB,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBnB,EAAMmB,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBlB,EAAMkB,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBjB,EAAMiB,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBf,EAAMgB,EAAI,CAAE,EACZf,EAAMe,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBV,EAAMU,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,IAGzBR,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXd,EAAMsB,EAAI,CAAE,EACZrB,EAAMqB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBpB,EAAMoB,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBnB,EAAMmB,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBlB,EAAMkB,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBjB,EAAMiB,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBf,EAAMgB,EAAI,CAAE,EACZf,EAAMe,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBV,EAAMU,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,GAG1BC,EAAK9B,EAAE,OACP+B,EAAK9B,EAAE,OAGPC,EAAOF,EAAE,KACTG,EAAOF,EAAE,KAGTG,EAAMJ,EAAE,UAAW,CAAE,EACrBK,EAAMJ,EAAE,UAAW,CAAE,EAGfqC,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IACtB3B,EAAKF,EAAM4B,EAAI3B,EAAKF,EAAM4B,CAAG,CAAE,EAC/BA,GAAMxB,EACNyB,GAAMlB,EAEPiB,GAAMvB,EACNwB,GAAMjB,CACP,CACAgB,GAAMtB,EACNuB,GAAMhB,CACP,CACAe,GAAMrB,EACNsB,GAAMf,CACP,CACAc,GAAMpB,EACNqB,GAAMd,CACP,CACAa,GAAMnB,EACNoB,GAAMb,CACP,CACAY,GAAMlB,EACNmB,GAAMZ,CACP,CACD,CAKArB,GAAO,QAAUC,KCtPjB,IAAAwC,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cA2GA,SAASC,GAAUC,EAAGC,EAAI,CACzB,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EA0EJ,IArEApB,EAAKtB,EAAE,MACP+B,EAAK/B,EAAE,QACPgC,EAAK/B,EAAE,QACFD,EAAE,QAAU,aAEhBuB,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXQ,EAAKR,EAAI,CAAE,EACXhB,EAAMyB,EAAI,CAAE,EACZxB,EAAMwB,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBvB,EAAMuB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBtB,EAAMsB,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBrB,EAAMqB,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBpB,EAAMoB,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBnB,EAAMmB,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBlB,EAAMkB,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBjB,EAAMkB,EAAI,CAAE,EACZjB,EAAMiB,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBf,EAAMe,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,IAGzBT,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXQ,EAAKR,EAAI,CAAE,EACXhB,EAAMyB,EAAI,CAAE,EACZxB,EAAMwB,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBvB,EAAMuB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBtB,EAAMsB,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBrB,EAAMqB,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBpB,EAAMoB,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBnB,EAAMmB,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBlB,EAAMkB,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBjB,EAAMkB,EAAI,CAAE,EACZjB,EAAMiB,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBf,EAAMe,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,GAG1BC,EAAKjC,EAAE,OACPkC,EAAKjC,EAAE,OAGPC,EAAOF,EAAE,KACTG,EAAOF,EAAE,KAGTG,EAAMJ,EAAE,UAAW,CAAE,EACrBK,EAAMJ,EAAE,UAAW,CAAE,EAGfyC,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IACtB9B,EAAKF,EAAM+B,EAAI9B,EAAKF,EAAM+B,CAAG,CAAE,EAC/BA,GAAM3B,EACN4B,GAAMpB,EAEPmB,GAAM1B,EACN2B,GAAMnB,CACP,CACAkB,GAAMzB,EACN0B,GAAMlB,CACP,CACAiB,GAAMxB,EACNyB,GAAMjB,CACP,CACAgB,GAAMvB,EACNwB,GAAMhB,CACP,CACAe,GAAMtB,EACNuB,GAAMf,CACP,CACAc,GAAMrB,EACNsB,GAAMd,CACP,CACAa,GAAMpB,EACNqB,GAAMb,CACP,CACD,CAKAvB,GAAO,QAAUC,KCpQjB,IAAA4C,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cA2GA,SAASC,GAAUC,EAAGC,EAAI,CACzB,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAgFJ,IA3EAtB,EAAKxB,EAAE,MACPkC,EAAKlC,EAAE,QACPmC,EAAKlC,EAAE,QACFD,EAAE,QAAU,aAEhByB,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXQ,EAAKR,EAAI,CAAE,EACXS,EAAKT,EAAI,CAAE,EACXlB,EAAM4B,EAAI,CAAE,EACZ3B,EAAM2B,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzB1B,EAAM0B,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBzB,EAAMyB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBxB,EAAMwB,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBvB,EAAMuB,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBtB,EAAMsB,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBrB,EAAMqB,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBpB,EAAMoB,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBnB,EAAMoB,EAAI,CAAE,EACZnB,EAAMmB,EAAI,CAAE,EAAMV,EAAGU,EAAG,CAAC,EACzBlB,EAAMkB,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzBjB,EAAMiB,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBf,EAAMe,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,IAGzBV,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXQ,EAAKR,EAAI,CAAE,EACXS,EAAKT,EAAI,CAAE,EACXlB,EAAM4B,EAAI,CAAE,EACZ3B,EAAM2B,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzB1B,EAAM0B,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBzB,EAAMyB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBxB,EAAMwB,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBvB,EAAMuB,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBtB,EAAMsB,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBrB,EAAMqB,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBpB,EAAMoB,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBnB,EAAMoB,EAAI,CAAE,EACZnB,EAAMmB,EAAI,CAAE,EAAMV,EAAGU,EAAG,CAAC,EACzBlB,EAAMkB,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzBjB,EAAMiB,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBf,EAAMe,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,GAG1BC,EAAKpC,EAAE,OACPqC,EAAKpC,EAAE,OAGPC,EAAOF,EAAE,KACTG,EAAOF,EAAE,KAGTG,EAAMJ,EAAE,UAAW,CAAE,EACrBK,EAAMJ,EAAE,UAAW,CAAE,EAGf6C,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IACtBjC,EAAKF,EAAMkC,EAAIjC,EAAKF,EAAMkC,CAAG,CAAE,EAC/BA,GAAM9B,EACN+B,GAAMtB,EAEPqB,GAAM7B,EACN8B,GAAMrB,CACP,CACAoB,GAAM5B,EACN6B,GAAMpB,CACP,CACAmB,GAAM3B,EACN4B,GAAMnB,CACP,CACAkB,GAAM1B,EACN2B,GAAMlB,CACP,CACAiB,GAAMzB,EACN0B,GAAMjB,CACP,CACAgB,GAAMxB,EACNyB,GAAMhB,CACP,CACAe,GAAMvB,EACNwB,GAAMf,CACP,CACAc,GAAMtB,EACNuB,GAAMd,CACP,CACD,CAKAzB,GAAO,QAAUC,KClRjB,IAAAgD,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cA2GA,SAASC,GAAWC,EAAGC,EAAI,CAC1B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAsFJ,IAjFAxB,EAAK1B,EAAE,MACPqC,EAAKrC,EAAE,QACPsC,EAAKrC,EAAE,QACFD,EAAE,QAAU,aAEhB2B,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXQ,EAAKR,EAAI,CAAE,EACXS,EAAKT,EAAI,CAAE,EACXU,EAAKV,EAAI,CAAE,EACXpB,EAAM+B,EAAI,CAAE,EACZ9B,EAAM8B,EAAI,CAAE,EAAMV,EAAGU,EAAG,CAAC,EACzB7B,EAAM6B,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzB5B,EAAM4B,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzB3B,EAAM2B,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzB1B,EAAM0B,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBzB,EAAMyB,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBxB,EAAMwB,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBvB,EAAMuB,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBtB,EAAMsB,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBrB,EAAMsB,EAAI,CAAE,EACZrB,EAAMqB,EAAI,CAAE,EAAMX,EAAGW,EAAG,CAAC,EACzBpB,EAAMoB,EAAI,CAAE,EAAMV,EAAGU,EAAG,CAAC,EACzBnB,EAAMmB,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzBlB,EAAMkB,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBjB,EAAMiB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBf,EAAMe,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,IAGzBX,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXQ,EAAKR,EAAI,CAAE,EACXS,EAAKT,EAAI,CAAE,EACXU,EAAKV,EAAI,CAAE,EACXpB,EAAM+B,EAAI,CAAE,EACZ9B,EAAM8B,EAAI,CAAE,EAAMV,EAAGU,EAAG,CAAC,EACzB7B,EAAM6B,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzB5B,EAAM4B,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzB3B,EAAM2B,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzB1B,EAAM0B,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBzB,EAAMyB,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBxB,EAAMwB,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBvB,EAAMuB,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBtB,EAAMsB,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBrB,EAAMsB,EAAI,CAAE,EACZrB,EAAMqB,EAAI,CAAE,EAAMX,EAAGW,EAAG,CAAC,EACzBpB,EAAMoB,EAAI,CAAE,EAAMV,EAAGU,EAAG,CAAC,EACzBnB,EAAMmB,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzBlB,EAAMkB,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBjB,EAAMiB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBf,EAAMe,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,GAG1BC,EAAKvC,EAAE,OACPwC,EAAKvC,EAAE,OAGPC,EAAOF,EAAE,KACTG,EAAOF,EAAE,KAGTG,EAAMJ,EAAE,UAAW,CAAE,EACrBK,EAAMJ,EAAE,UAAW,CAAE,EAGfiD,EAAK,EAAGA,EAAKd,EAAIc,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKd,EAAIc,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKd,EAAIc,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKd,EAAIc,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKd,EAAIc,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKd,EAAIc,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKd,EAAIc,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKd,EAAIc,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKd,EAAIc,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKd,EAAIc,IACtBpC,EAAKF,EAAMqC,EAAIpC,EAAKF,EAAMqC,CAAG,CAAE,EAC/BA,GAAMjC,EACNkC,GAAMxB,EAEPuB,GAAMhC,EACNiC,GAAMvB,CACP,CACAsB,GAAM/B,EACNgC,GAAMtB,CACP,CACAqB,GAAM9B,EACN+B,GAAMrB,CACP,CACAoB,GAAM7B,EACN8B,GAAMpB,CACP,CACAmB,GAAM5B,EACN6B,GAAMnB,CACP,CACAkB,GAAM3B,EACN4B,GAAMlB,CACP,CACAiB,GAAM1B,EACN2B,GAAMjB,CACP,CACAgB,GAAMzB,EACN0B,GAAMhB,CACP,CACAe,GAAMxB,EACNyB,GAAMf,CACP,CACD,CAKA3B,GAAO,QAAUC,KChSjB,IAAAoD,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAsBA,IAAIC,GAAS,QAAS,uBAAwB,EA2B9C,SAASC,GAAWC,EAAOC,EAASC,EAAQC,EAAOC,EAAKC,EAAO,CAC9D,IAAIC,EACAC,EACAC,EACAC,EACAC,EAIJ,IAFAJ,EAAQN,EAAM,OACdO,EAAM,EACAG,EAAI,EAAGA,EAAIJ,EAAOI,IACvBH,GAAOP,EAAOU,CAAE,EAEjB,GAAKL,IAAS,QACRD,EAAM,EACVA,EAAM,EACKA,GAAOG,IAClBH,EAAMG,EAAM,WAEFF,IAAS,OACfD,EAAM,GACVA,GAAOG,EACFH,EAAM,IACVA,GAAOG,EACFH,IAAQ,IACZA,GAAOG,KAGEH,GAAOG,IAClBH,GAAOG,EACFH,GAAOG,IACXH,GAAOG,YAIJF,IAAS,aAAeD,EAAM,IAClCA,GAAOG,GAEHH,EAAM,GAAKA,GAAOG,EACtB,MAAM,IAAI,WAAYT,GAAQ,gHAAiHS,EAAKH,CAAI,CAAE,EAK5J,GADAI,EAAMN,EACDC,IAAU,eAAiB,CAC/B,IAAMO,EAAI,EAAGA,EAAIJ,EAAOI,IACvBD,EAAIL,EAAMJ,EAAOU,CAAE,EACnBN,GAAOK,EACPL,GAAOJ,EAAOU,CAAE,EAChBF,GAAOC,EAAIR,EAASS,CAAE,EAEvB,OAAOF,CACR,CAEA,IAAME,EAAIJ,EAAM,EAAGI,GAAK,EAAGA,IAC1BD,EAAIL,EAAMJ,EAAOU,CAAE,EACnBN,GAAOK,EACPL,GAAOJ,EAAOU,CAAE,EAChBF,GAAOC,EAAIR,EAASS,CAAE,EAEvB,OAAOF,CACR,CAKAX,GAAO,QAAUE,KClHjB,IAAAY,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAwCA,IAAIC,GAAY,KAKhBD,GAAO,QAAUC,KC7CjB,IAAAC,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAsBA,IAAIC,GAAQ,KACRC,GAAY,KAKZC,GAAO,QAwFX,SAASC,GAAUC,EAAGC,EAAI,CACzB,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EA4BJ,IA1BAP,EAAKT,EAAE,MAGPM,EAAMV,GAAOa,CAAG,EAGhBP,EAAOF,EAAE,KACTG,EAAOF,EAAE,KAGTS,EAAKV,EAAE,QACPW,EAAKV,EAAE,QAGPW,EAAKZ,EAAE,OACPa,EAAKZ,EAAE,OAGPG,EAAOJ,EAAE,MACTK,EAAOJ,EAAE,MAGTM,EAAMP,EAAE,UAAW,CAAE,EACrBQ,EAAMP,EAAE,UAAW,CAAE,EAGfe,EAAI,EAAGA,EAAIV,EAAKU,IACrBF,EAAKjB,GAAWY,EAAIC,EAAIE,EAAIR,EAAMY,EAAGlB,EAAK,EAC1CiB,EAAKlB,GAAWY,EAAIE,EAAIE,EAAIR,EAAMW,EAAGlB,EAAK,EAC1CU,EAAKL,EAAMY,EAAIR,EAAKL,EAAMY,CAAG,CAAE,CAEjC,CAKAnB,GAAO,QAAUI,KCzKjB,IAAAkB,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAoFA,SAASC,GAAUC,EAAGC,EAAI,CACzBA,EAAE,KAAMA,EAAE,MAAO,EAAID,EAAE,KAAMA,EAAE,MAAO,CACvC,CAKAF,GAAO,QAAUC,KC3FjB,IAAAG,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAoFA,SAASC,GAAUC,EAAGC,EAAI,CACzB,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAkBJ,IAbAH,EAAKN,EAAE,MAAO,CAAE,EAChBI,EAAMJ,EAAE,QAAS,CAAE,EACnBK,EAAMJ,EAAE,QAAS,CAAE,EAGnBM,EAAKP,EAAE,OACPQ,EAAKP,EAAE,OAGPC,EAAOF,EAAE,KACTG,EAAOF,EAAE,KAGHQ,EAAK,EAAGA,EAAKH,EAAIG,IACtBN,EAAMK,CAAG,EAAIN,EAAMK,CAAG,EACtBA,GAAMH,EACNI,GAAMH,CAER,CAKAP,GAAO,QAAUC,KCxHjB,IAAAW,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAoFA,SAASC,GAAUC,EAAGC,EAAI,CACzB,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAkCJ,IA7BAR,EAAKR,EAAE,MACPW,EAAKX,EAAE,QACPY,EAAKX,EAAE,QACFD,EAAE,QAAU,aAEhBS,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXJ,EAAMO,EAAI,CAAE,EACZN,EAAMM,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBL,EAAMM,EAAI,CAAE,EACZL,EAAMK,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,IAGzBH,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXJ,EAAMO,EAAI,CAAE,EACZN,EAAMM,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBL,EAAMM,EAAI,CAAE,EACZL,EAAMK,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,GAG1BC,EAAKb,EAAE,OACPc,EAAKb,EAAE,OAGPC,EAAOF,EAAE,KACTG,EAAOF,EAAE,KAGHe,EAAK,EAAGA,EAAKN,EAAIM,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKN,EAAIM,IACtBZ,EAAMW,CAAG,EAAIZ,EAAMW,CAAG,EACtBA,GAAMT,EACNU,GAAMR,EAEPO,GAAMR,EACNS,GAAMP,CACP,CACD,CAKAT,GAAO,QAAUC,KCnJjB,IAAAkB,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAoFA,SAASC,GAAUC,EAAGC,EAAI,CACzB,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAwCJ,IAnCAV,EAAKV,EAAE,MACPc,EAAKd,EAAE,QACPe,EAAKd,EAAE,QACFD,EAAE,QAAU,aAEhBW,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXN,EAAMU,EAAI,CAAE,EACZT,EAAMS,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBR,EAAMQ,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBP,EAAMQ,EAAI,CAAE,EACZP,EAAMO,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBN,EAAMM,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,IAGzBJ,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXN,EAAMU,EAAI,CAAE,EACZT,EAAMS,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBR,EAAMQ,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBP,EAAMQ,EAAI,CAAE,EACZP,EAAMO,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBN,EAAMM,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,GAG1BC,EAAKhB,EAAE,OACPiB,EAAKhB,EAAE,OAGPC,EAAOF,EAAE,KACTG,EAAOF,EAAE,KAGHmB,EAAK,EAAGA,EAAKP,EAAIO,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKP,EAAIO,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKP,EAAIO,IACtBf,EAAMc,CAAG,EAAIf,EAAMc,CAAG,EACtBA,GAAMZ,EACNa,GAAMV,EAEPS,GAAMX,EACNY,GAAMT,CACP,CACAQ,GAAMV,EACNW,GAAMR,CACP,CACD,CAKAX,GAAO,QAAUC,KCjKjB,IAAAsB,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAoFA,SAASC,GAAUC,EAAGC,EAAI,CACzB,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EA8CJ,IAzCAZ,EAAKZ,EAAE,MACPiB,EAAKjB,EAAE,QACPkB,EAAKjB,EAAE,QACFD,EAAE,QAAU,aAEhBa,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXR,EAAMa,EAAI,CAAE,EACZZ,EAAMY,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBV,EAAMU,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBT,EAAMU,EAAI,CAAE,EACZT,EAAMS,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBR,EAAMQ,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBP,EAAMO,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,IAGzBL,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXR,EAAMa,EAAI,CAAE,EACZZ,EAAMY,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBV,EAAMU,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBT,EAAMU,EAAI,CAAE,EACZT,EAAMS,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBR,EAAMQ,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBP,EAAMO,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,GAG1BC,EAAKnB,EAAE,OACPoB,EAAKnB,EAAE,OAGPC,EAAOF,EAAE,KACTG,EAAOF,EAAE,KAGHuB,EAAK,EAAGA,EAAKR,EAAIQ,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKR,EAAIQ,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKR,EAAIQ,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKR,EAAIQ,IACtBlB,EAAMiB,CAAG,EAAIlB,EAAMiB,CAAG,EACtBA,GAAMf,EACNgB,GAAMZ,EAEPW,GAAMd,EACNe,GAAMX,CACP,CACAU,GAAMb,EACNc,GAAMV,CACP,CACAS,GAAMZ,EACNa,GAAMT,CACP,CACD,CAKAb,GAAO,QAAUC,KC/KjB,IAAA0B,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAoFA,SAASC,GAAUC,EAAGC,EAAI,CACzB,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAoDJ,IA/CAd,EAAKd,EAAE,MACPoB,EAAKpB,EAAE,QACPqB,EAAKpB,EAAE,QACFD,EAAE,QAAU,aAEhBe,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXV,EAAMgB,EAAI,CAAE,EACZf,EAAMe,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBX,EAAMY,EAAI,CAAE,EACZX,EAAMW,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBV,EAAMU,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBT,EAAMS,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBR,EAAMQ,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,IAGzBN,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXV,EAAMgB,EAAI,CAAE,EACZf,EAAMe,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBX,EAAMY,EAAI,CAAE,EACZX,EAAMW,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBV,EAAMU,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBT,EAAMS,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBR,EAAMQ,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,GAG1BC,EAAKtB,EAAE,OACPuB,EAAKtB,EAAE,OAGPC,EAAOF,EAAE,KACTG,EAAOF,EAAE,KAGH2B,EAAK,EAAGA,EAAKT,EAAIS,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKT,EAAIS,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKT,EAAIS,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKT,EAAIS,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKT,EAAIS,IACtBrB,EAAMoB,CAAG,EAAIrB,EAAMoB,CAAG,EACtBA,GAAMlB,EACNmB,GAAMd,EAEPa,GAAMjB,EACNkB,GAAMb,CACP,CACAY,GAAMhB,EACNiB,GAAMZ,CACP,CACAW,GAAMf,EACNgB,GAAMX,CACP,CACAU,GAAMd,EACNe,GAAMV,CACP,CACD,CAKAf,GAAO,QAAUC,KC7LjB,IAAA8B,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAsFA,SAASC,GAAUC,EAAGC,EAAI,CACzB,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EA0DJ,IArDAhB,EAAKhB,EAAE,MACPuB,EAAKvB,EAAE,QACPwB,EAAKvB,EAAE,QACFD,EAAE,QAAU,aAEhBiB,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXZ,EAAMmB,EAAI,CAAE,EACZlB,EAAMkB,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBjB,EAAMiB,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBf,EAAMe,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBb,EAAMc,EAAI,CAAE,EACZb,EAAMa,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBV,EAAMU,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBT,EAAMS,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,IAGzBP,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXZ,EAAMmB,EAAI,CAAE,EACZlB,EAAMkB,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBjB,EAAMiB,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBf,EAAMe,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBb,EAAMc,EAAI,CAAE,EACZb,EAAMa,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBV,EAAMU,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBT,EAAMS,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,GAG1BC,EAAKzB,EAAE,OACP0B,EAAKzB,EAAE,OAGPC,EAAOF,EAAE,KACTG,EAAOF,EAAE,KAGH+B,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IACtBxB,EAAMuB,CAAG,EAAIxB,EAAMuB,CAAG,EACtBA,GAAMrB,EACNsB,GAAMhB,EAEPe,GAAMpB,EACNqB,GAAMf,CACP,CACAc,GAAMnB,EACNoB,GAAMd,CACP,CACAa,GAAMlB,EACNmB,GAAMb,CACP,CACAY,GAAMjB,EACNkB,GAAMZ,CACP,CACAW,GAAMhB,EACNiB,GAAMX,CACP,CACD,CAKAjB,GAAO,QAAUC,KC7MjB,IAAAkC,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAsFA,SAASC,GAAUC,EAAGC,EAAI,CACzB,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAgEJ,IA3DAlB,EAAKlB,EAAE,MACP0B,EAAK1B,EAAE,QACP2B,EAAK1B,EAAE,QACFD,EAAE,QAAU,aAEhBmB,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXd,EAAMsB,EAAI,CAAE,EACZrB,EAAMqB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBpB,EAAMoB,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBnB,EAAMmB,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBlB,EAAMkB,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBjB,EAAMiB,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBf,EAAMgB,EAAI,CAAE,EACZf,EAAMe,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBV,EAAMU,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,IAGzBR,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXd,EAAMsB,EAAI,CAAE,EACZrB,EAAMqB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBpB,EAAMoB,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBnB,EAAMmB,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBlB,EAAMkB,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBjB,EAAMiB,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBf,EAAMgB,EAAI,CAAE,EACZf,EAAMe,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBV,EAAMU,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,GAG1BC,EAAK5B,EAAE,OACP6B,EAAK5B,EAAE,OAGPC,EAAOF,EAAE,KACTG,EAAOF,EAAE,KAGHmC,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IACtB3B,EAAM0B,CAAG,EAAI3B,EAAM0B,CAAG,EACtBA,GAAMxB,EACNyB,GAAMlB,EAEPiB,GAAMvB,EACNwB,GAAMjB,CACP,CACAgB,GAAMtB,EACNuB,GAAMhB,CACP,CACAe,GAAMrB,EACNsB,GAAMf,CACP,CACAc,GAAMpB,EACNqB,GAAMd,CACP,CACAa,GAAMnB,EACNoB,GAAMb,CACP,CACAY,GAAMlB,EACNmB,GAAMZ,CACP,CACD,CAKAnB,GAAO,QAAUC,KC3NjB,IAAAsC,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAsFA,SAASC,GAAUC,EAAGC,EAAI,CACzB,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAsEJ,IAjEApB,EAAKpB,EAAE,MACP6B,EAAK7B,EAAE,QACP8B,EAAK7B,EAAE,QACFD,EAAE,QAAU,aAEhBqB,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXQ,EAAKR,EAAI,CAAE,EACXhB,EAAMyB,EAAI,CAAE,EACZxB,EAAMwB,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBvB,EAAMuB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBtB,EAAMsB,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBrB,EAAMqB,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBpB,EAAMoB,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBnB,EAAMmB,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBlB,EAAMkB,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBjB,EAAMkB,EAAI,CAAE,EACZjB,EAAMiB,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBf,EAAMe,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,IAGzBT,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXQ,EAAKR,EAAI,CAAE,EACXhB,EAAMyB,EAAI,CAAE,EACZxB,EAAMwB,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBvB,EAAMuB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBtB,EAAMsB,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBrB,EAAMqB,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBpB,EAAMoB,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBnB,EAAMmB,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBlB,EAAMkB,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBjB,EAAMkB,EAAI,CAAE,EACZjB,EAAMiB,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBf,EAAMe,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,GAG1BC,EAAK/B,EAAE,OACPgC,EAAK/B,EAAE,OAGPC,EAAOF,EAAE,KACTG,EAAOF,EAAE,KAGHuC,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IACtB9B,EAAM6B,CAAG,EAAI9B,EAAM6B,CAAG,EACtBA,GAAM3B,EACN4B,GAAMpB,EAEPmB,GAAM1B,EACN2B,GAAMnB,CACP,CACAkB,GAAMzB,EACN0B,GAAMlB,CACP,CACAiB,GAAMxB,EACNyB,GAAMjB,CACP,CACAgB,GAAMvB,EACNwB,GAAMhB,CACP,CACAe,GAAMtB,EACNuB,GAAMf,CACP,CACAc,GAAMrB,EACNsB,GAAMd,CACP,CACAa,GAAMpB,EACNqB,GAAMb,CACP,CACD,CAKArB,GAAO,QAAUC,KCzOjB,IAAA0C,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAsFA,SAASC,GAAUC,EAAGC,EAAI,CACzB,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EA4EJ,IAvEAtB,EAAKtB,EAAE,MACPgC,EAAKhC,EAAE,QACPiC,EAAKhC,EAAE,QACFD,EAAE,QAAU,aAEhBuB,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXQ,EAAKR,EAAI,CAAE,EACXS,EAAKT,EAAI,CAAE,EACXlB,EAAM4B,EAAI,CAAE,EACZ3B,EAAM2B,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzB1B,EAAM0B,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBzB,EAAMyB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBxB,EAAMwB,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBvB,EAAMuB,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBtB,EAAMsB,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBrB,EAAMqB,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBpB,EAAMoB,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBnB,EAAMoB,EAAI,CAAE,EACZnB,EAAMmB,EAAI,CAAE,EAAMV,EAAGU,EAAG,CAAC,EACzBlB,EAAMkB,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzBjB,EAAMiB,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBf,EAAMe,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,IAGzBV,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXQ,EAAKR,EAAI,CAAE,EACXS,EAAKT,EAAI,CAAE,EACXlB,EAAM4B,EAAI,CAAE,EACZ3B,EAAM2B,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzB1B,EAAM0B,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBzB,EAAMyB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBxB,EAAMwB,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBvB,EAAMuB,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBtB,EAAMsB,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBrB,EAAMqB,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBpB,EAAMoB,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBnB,EAAMoB,EAAI,CAAE,EACZnB,EAAMmB,EAAI,CAAE,EAAMV,EAAGU,EAAG,CAAC,EACzBlB,EAAMkB,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzBjB,EAAMiB,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBf,EAAMe,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,GAG1BC,EAAKlC,EAAE,OACPmC,EAAKlC,EAAE,OAGPC,EAAOF,EAAE,KACTG,EAAOF,EAAE,KAGH2C,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IACtBjC,EAAMgC,CAAG,EAAIjC,EAAMgC,CAAG,EACtBA,GAAM9B,EACN+B,GAAMtB,EAEPqB,GAAM7B,EACN8B,GAAMrB,CACP,CACAoB,GAAM5B,EACN6B,GAAMpB,CACP,CACAmB,GAAM3B,EACN4B,GAAMnB,CACP,CACAkB,GAAM1B,EACN2B,GAAMlB,CACP,CACAiB,GAAMzB,EACN0B,GAAMjB,CACP,CACAgB,GAAMxB,EACNyB,GAAMhB,CACP,CACAe,GAAMvB,EACNwB,GAAMf,CACP,CACAc,GAAMtB,EACNuB,GAAMd,CACP,CACD,CAKAvB,GAAO,QAAUC,KCvPjB,IAAA8C,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAsFA,SAASC,GAAWC,EAAGC,EAAI,CAC1B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAkFJ,IA7EAxB,EAAKxB,EAAE,MACPmC,EAAKnC,EAAE,QACPoC,EAAKnC,EAAE,QACFD,EAAE,QAAU,aAEhByB,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXQ,EAAKR,EAAI,CAAE,EACXS,EAAKT,EAAI,CAAE,EACXU,EAAKV,EAAI,CAAE,EACXpB,EAAM+B,EAAI,CAAE,EACZ9B,EAAM8B,EAAI,CAAE,EAAMV,EAAGU,EAAG,CAAC,EACzB7B,EAAM6B,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzB5B,EAAM4B,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzB3B,EAAM2B,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzB1B,EAAM0B,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBzB,EAAMyB,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBxB,EAAMwB,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBvB,EAAMuB,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBtB,EAAMsB,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBrB,EAAMsB,EAAI,CAAE,EACZrB,EAAMqB,EAAI,CAAE,EAAMX,EAAGW,EAAG,CAAC,EACzBpB,EAAMoB,EAAI,CAAE,EAAMV,EAAGU,EAAG,CAAC,EACzBnB,EAAMmB,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzBlB,EAAMkB,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBjB,EAAMiB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBf,EAAMe,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,IAGzBX,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXQ,EAAKR,EAAI,CAAE,EACXS,EAAKT,EAAI,CAAE,EACXU,EAAKV,EAAI,CAAE,EACXpB,EAAM+B,EAAI,CAAE,EACZ9B,EAAM8B,EAAI,CAAE,EAAMV,EAAGU,EAAG,CAAC,EACzB7B,EAAM6B,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzB5B,EAAM4B,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzB3B,EAAM2B,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzB1B,EAAM0B,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBzB,EAAMyB,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBxB,EAAMwB,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBvB,EAAMuB,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBtB,EAAMsB,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBrB,EAAMsB,EAAI,CAAE,EACZrB,EAAMqB,EAAI,CAAE,EAAMX,EAAGW,EAAG,CAAC,EACzBpB,EAAMoB,EAAI,CAAE,EAAMV,EAAGU,EAAG,CAAC,EACzBnB,EAAMmB,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzBlB,EAAMkB,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBjB,EAAMiB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBf,EAAMe,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,GAG1BC,EAAKrC,EAAE,OACPsC,EAAKrC,EAAE,OAGPC,EAAOF,EAAE,KACTG,EAAOF,EAAE,KAGH+C,EAAK,EAAGA,EAAKd,EAAIc,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKd,EAAIc,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKd,EAAIc,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKd,EAAIc,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKd,EAAIc,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKd,EAAIc,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKd,EAAIc,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKd,EAAIc,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKd,EAAIc,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKd,EAAIc,IACtBpC,EAAMmC,CAAG,EAAIpC,EAAMmC,CAAG,EACtBA,GAAMjC,EACNkC,GAAMxB,EAEPuB,GAAMhC,EACNiC,GAAMvB,CACP,CACAsB,GAAM/B,EACNgC,GAAMtB,CACP,CACAqB,GAAM9B,EACN+B,GAAMrB,CACP,CACAoB,GAAM7B,EACN8B,GAAMpB,CACP,CACAmB,GAAM5B,EACN6B,GAAMnB,CACP,CACAkB,GAAM3B,EACN4B,GAAMlB,CACP,CACAiB,GAAM1B,EACN2B,GAAMjB,CACP,CACAgB,GAAMzB,EACN0B,GAAMhB,CACP,CACAe,GAAMxB,EACNyB,GAAMf,CACP,CACD,CAKAzB,GAAO,QAAUC,KCrQjB,IAAAkD,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAsBA,IAAIC,GAAQ,KACRC,GAAY,KAKZC,GAAO,QAmEX,SAASC,GAAUC,EAAGC,EAAI,CACzB,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAwBJ,IAtBAP,EAAKP,EAAE,MAGPM,EAAMV,GAAOW,CAAG,EAGhBL,EAAOF,EAAE,KACTG,EAAOF,EAAE,KAGTO,EAAKR,EAAE,QACPS,EAAKR,EAAE,QAGPS,EAAKV,EAAE,OACPW,EAAKV,EAAE,OAGPG,EAAOJ,EAAE,MACTK,EAAOJ,EAAE,MAGHa,EAAI,EAAGA,EAAIR,EAAKQ,IACrBF,EAAKf,GAAWU,EAAIC,EAAIE,EAAIN,EAAMU,EAAGhB,EAAK,EAC1Ce,EAAKhB,GAAWU,EAAIE,EAAIE,EAAIN,EAAMS,EAAGhB,EAAK,EAC1CK,EAAMU,CAAG,EAAIX,EAAMU,CAAG,CAExB,CAKAjB,GAAO,QAAUI,KC9IjB,IAAAgB,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAsBA,IAAIC,GAAoB,KACpBC,GAAiB,KACjBC,GAAiB,KACjBC,GAAa,QAAS,kCAAmC,EACzDC,GAAe,QAAS,uBAAwB,EAChDC,GAAwB,KACxBC,GAAiB,KACjBC,GAA0B,KAC1BC,GAA0B,KAC1BC,GAA0B,KAC1BC,GAA0B,KAC1BC,GAA0B,KAC1BC,GAA0B,KAC1BC,GAA0B,KAC1BC,GAA0B,KAC1BC,GAA2B,KAC3BC,GAAkB,KAClBC,GAAkB,KAClBC,GAAkB,KAClBC,GAAkB,KAClBC,GAAkB,KAClBC,GAAkB,KAClBC,GAAkB,KAClBC,GAAkB,KAClBC,GAAmB,KACnBC,GAAmB,KACnBC,GAAmB,KACnBC,GAAmB,KACnBC,GAAmB,KACnBC,GAAmB,KACnBC,GAAmB,KACnBC,GAAmB,KACnBC,GAAmB,KACnBC,GAAmB,KACnBC,GAAmB,KACnBC,GAAoB,KACpBC,GAAmB,KACnBC,GAAW,KACXC,GAAW,KACXC,GAAW,KACXC,GAAW,KACXC,GAAW,KACXC,GAAW,KACXC,GAAW,KACXC,GAAW,KACXC,GAAW,KACXC,GAAW,KACXC,GAAY,KACZC,GAAW,KAKXC,GAAS,CACZZ,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,EACD,EACIG,GAAkB,CACrBzB,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,EACD,EACIgB,GAAiB,CACpBnC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,EACD,EACI4B,GAA0B,CAC7B7C,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,EACD,EACIsC,GAAWJ,GAAO,OAAS,EAkE/B,SAASK,GAAQC,EAAS,CACzB,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAeJ,GAZAH,EAAI/D,GAAgBiD,EAAQ,CAAE,CAAE,EAChCe,EAAIhE,GAAgBiD,EAAQ,CAAE,CAAE,EAG3BtD,GAAgBoE,EAAE,KAAM,GAAKrE,GAAmBsE,EAAE,KAAM,IAC5DD,EAAE,iBAAmB,GACrBA,EAAE,UAAW,CAAE,EAAIlE,GAAYkE,EAAE,UAAW,CAAE,EAAG,EAAGjE,GAAckE,EAAE,KAAM,CAAE,GAG7EX,EAAMU,EAAE,MACRT,EAAMU,EAAE,MACRd,EAAQG,EAAI,OACPH,IAAUI,EAAI,OAClB,MAAM,IAAI,MAAO,oGAAoGJ,EAAM,iBAAiBI,EAAI,OAAO,GAAI,EAG5J,GAAKJ,IAAU,EACd,OAAKa,EAAE,kBAAoBC,EAAE,iBACrBpB,GAAiBM,CAAM,EAAGa,EAAGC,CAAE,EAEhCrB,GAAQO,CAAM,EAAGa,EAAGC,CAAE,EAK9B,IAFAP,EAAM,EACNK,EAAK,EACCI,EAAI,EAAGA,EAAIhB,EAAOgB,IAAM,CAE7B,GADAD,EAAIZ,EAAKa,CAAE,EACND,IAAMX,EAAKY,CAAE,EACjB,MAAM,IAAI,MAAO,qDAAsD,EAGxET,GAAOQ,EAGFA,IAAM,IACVH,GAAM,EAER,CAEA,GAAKL,IAAQ,EAIb,IAAKP,IAAU,EACd,OAAKa,EAAE,kBAAoBC,EAAE,iBACrBpB,GAAiBM,CAAM,EAAGa,EAAGC,CAAE,EAEhCrB,GAAQO,CAAM,EAAGa,EAAGC,CAAE,EAM9B,GAJAN,EAAKK,EAAE,QACPJ,EAAKK,EAAE,QAGFF,IAAOZ,EAAM,EAAI,CAErB,IAAMgB,EAAI,EAAGA,EAAIhB,GACXG,EAAKa,CAAE,IAAM,EADKA,IACvB,CAQD,OAJAH,EAAE,MAAQ,CAAEV,EAAIa,CAAC,CAAE,EACnBF,EAAE,MAAQD,EAAE,MACZA,EAAE,QAAU,CAAEL,EAAGQ,CAAC,CAAE,EACpBF,EAAE,QAAU,CAAEL,EAAGO,CAAC,CAAE,EACfH,EAAE,kBAAoBC,EAAE,iBACrBpB,GAAiB,CAAE,EAAGmB,EAAGC,CAAE,EAE5BrB,GAAQ,CAAE,EAAGoB,EAAGC,CAAE,CAC1B,CAKA,GAJAT,EAAM3D,GAAgB8D,CAAG,EACzBF,EAAM5D,GAAgB+D,CAAG,EAGpBJ,IAAQ,GAAKC,IAAQ,GAAKO,EAAE,QAAUC,EAAE,MAAQ,CAMpD,GAJAb,EAAOpD,GAAuBsD,EAAKK,EAAIK,EAAE,MAAO,EAChDX,EAAOrD,GAAuBuD,EAAKK,EAAIK,EAAE,MAAO,EAG3CP,IAAUN,EAAK,CAAC,EAAEA,EAAK,CAAC,EAAE,GAAOM,IAAUL,EAAK,CAAC,EAAEA,EAAK,CAAC,EAAE,EAkB/D,OAhBKG,IAAQ,EACZK,EAAKT,EAAM,CAAE,EAEbS,EAAKT,EAAM,CAAE,EAETK,IAAQ,EACZK,EAAKT,EAAM,CAAE,EAEbS,EAAKT,EAAM,CAAE,EAEdW,EAAE,MAAQ,CAAEN,CAAI,EAChBO,EAAE,MAAQD,EAAE,MACZA,EAAE,QAAU,CAAER,CAAI,EAClBS,EAAE,QAAU,CAAER,CAAI,EAClBO,EAAE,OAASH,EACXI,EAAE,OAASH,EACNE,EAAE,kBAAoBC,EAAE,iBACrBpB,GAAiB,CAAE,EAAGmB,EAAGC,CAAE,EAE5BrB,GAAQ,CAAE,EAAGoB,EAAGC,CAAE,EAK1B,GAAKd,GAASH,GAEb,OAAKgB,EAAE,kBAAoBC,EAAE,iBACrBpB,GAAiBM,CAAM,EAAGa,EAAGC,CAAE,EAEhCrB,GAAQO,CAAM,EAAGa,EAAGC,CAAE,CAG/B,CAIA,GAAKd,GAASH,GACb,OAAKgB,EAAE,kBAAoBC,EAAE,iBACrBlB,GAAyBI,EAAM,CAAE,EAAGa,EAAGC,CAAE,EAE1CnB,GAAgBK,EAAM,CAAE,EAAGa,EAAGC,CAAE,EAGxC,GAAKD,EAAE,kBAAoBC,EAAE,iBAC5B,OAAOlC,GAAkBiC,EAAGC,CAAE,EAE/BtB,GAAUqB,EAAGC,CAAE,EAChB,CAKAvE,GAAO,QAAUuD,KCtVjB,IAAAmB,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAuEA,IAAIC,GAAO,KAKXD,GAAO,QAAUC,KC5EjB,IAAAC,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAkDA,SAASC,GAAUC,EAAGC,EAAI,CACzB,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAMJ,IAJAP,EAAK,EACLC,EAAK,EAGCM,EAAI,EAAGA,EAAIX,EAAE,OAAQW,IAAM,CAUhC,IATAH,EAAKR,EAAGI,CAAG,EACXF,EAAQM,EAAK,EAAM,CAACA,EAAKA,EAEzBC,EAAKR,EAAGI,CAAG,EAEXC,EAAKF,EAAK,EACVG,EAAKF,EAAK,EAGFC,GAAM,IACbI,EAAKV,EAAGM,CAAG,EACXH,EAAQO,EAAK,EAAM,CAACA,EAAKA,EACpB,EAAAP,GAAOD,KAGZF,EAAGM,EAAG,CAAE,EAAII,EACZT,EAAGM,EAAG,CAAE,EAAIN,EAAGM,CAAG,EAClBD,GAAM,EACNC,GAAM,EAEPP,EAAGM,EAAG,CAAE,EAAIE,EACZP,EAAGM,EAAG,CAAE,EAAIE,EACZL,GAAM,EACNC,GAAM,CACP,CACD,CAKAP,GAAO,QAAUC,KCjGjB,IAAAa,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAsBA,IAAIC,GAAS,QAAS,4BAA6B,EAC/CC,GAAO,QAAS,iCAAkC,EAClDC,GAAO,QAAS,iCAAkC,EAClDC,GAAS,QAAS,2BAA4B,EAC9CC,GAAgB,KAChBC,GAAW,KAMXC,GAAI,EA6CR,SAASC,GAAWC,EAAIC,EAAIC,EAAIC,EAAK,CACpC,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAgBJ,GAbAT,EAAMZ,GAAQQ,EAAG,MAAO,EAGxBS,EAAKb,GAAeK,CAAG,EACvBS,EAAKd,GAAeM,CAAG,EACvBS,EAAKf,GAAeO,CAAG,EAGvBE,EAAMV,GAAQ,CAAC,EAAG,CAAE,EACpBU,EAAKI,CAAG,EAAE,KAAMR,CAAG,EACnBI,EAAKK,CAAG,EAAE,KAAMR,CAAG,EACnBG,EAAKM,CAAG,EAAE,KAAMR,CAAG,EACnBG,EAAMD,EAAK,CAAE,EAAE,OACVC,IAAQR,GAEZU,EAAMP,UACKK,IAAQR,GAAE,GAErB,IAAMc,EAAI,EAAGA,EAAI,EAAGA,IACnB,GAAKP,EAAKO,CAAE,EAAE,OAAS,CACtBJ,EAAMH,EAAKO,CAAE,EAAG,CAAE,EAClB,KACD,MAEK,CAGN,IADAC,EAAI,EACED,EAAI,EAAGA,EAAI,EAAGA,IACnBL,EAAMF,EAAKO,CAAE,EAAE,OACVL,GAAOD,IACXA,EAAMC,EACNM,EAAID,GAINJ,EAAMH,EAAKQ,CAAE,EAAG,CAAE,CACnB,CAEA,OAAAL,EAAMf,GAAMe,CAAI,EAChBX,GAAUW,EAAKJ,CAAI,EAGnBJ,EAAKN,GAAMM,EAAII,CAAI,EACnBH,EAAOA,IAAOO,EAAQA,EAAMd,GAAMO,EAAIG,CAAI,EAC1CF,EAAOA,IAAOM,EAAQA,EAAMd,GAAMQ,EAAIE,CAAI,EAC1CD,EAAOA,IAAOK,EAAQA,EAAMd,GAAMS,EAAIC,CAAI,EAEnC,CACN,GAAMJ,EACN,GAAMC,EACN,GAAMC,EACN,GAAMC,CACP,CACD,CAKAZ,GAAO,QAAUQ,KCrJjB,IAAAe,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAoDA,IAAIC,GAAO,KAKXD,GAAO,QAAUC,KCzDjB,IAAAC,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAsBA,IAAIC,GAAW,CAEd,oBAAuB,GAGvB,uBAA0B,CAC3B,EAKAD,GAAO,QAAUC,KCjCjB,IAAAC,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAsBA,IAAIC,GAAkB,KAClBC,GAAW,KAiBf,SAASC,GAAiBC,EAAQC,EAAQC,EAAS,CAClD,IAAIC,EACAC,EACAC,EAKJ,OAHAF,EAAMN,GAAiBG,CAAO,EAC9BI,EAAMP,GAAiBI,CAAO,EAC9BI,EAAMR,GAAiBK,CAAO,EACzBC,IAAQ,MAAQC,IAAQ,MAAQC,IAAQ,KACrCP,GAAS,uBAEZK,EAAMC,GAAOD,EAAME,EACdP,GAAS,oBAAoBK,EAAM,EAExCC,EAAMC,EACDP,GAAS,oBAAoBM,EAAM,EAEpCN,GAAS,oBAAoBO,EAAM,CAC7C,CAKAT,GAAO,QAAUG,KC/DjB,IAAAO,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAkCA,IAAIC,GAAO,KAKXD,GAAO,QAAUC,KCvCjB,IAAAC,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAsBA,IAAIC,GAAS,QAAS,uBAAwB,EAC1CC,GAAQ,QAAS,iCAAkC,EACnDC,GAAM,QAAS,+BAAgC,EA2BnD,SAASC,GAAWC,EAAOC,EAASC,EAAQC,EAAOC,EAAKC,EAAO,CAC9D,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EAIJ,IAFAL,EAAQN,EAAM,OACdO,EAAM,EACAI,EAAI,EAAGA,EAAIL,EAAOK,IACvBJ,GAAOP,EAAOW,CAAE,EAEjB,GAAKN,IAAS,QACRD,EAAM,EACVA,EAAM,EACKA,GAAOG,IAClBH,EAAMG,EAAM,WAEFF,IAAS,OACfD,EAAM,GACVA,GAAOG,EACFH,EAAM,IACVA,GAAOG,EACFH,IAAQ,IACZA,GAAOG,KAGEH,GAAOG,IAClBH,GAAOG,EACFH,GAAOG,IACXH,GAAOG,YAIJF,IAAS,aAAeD,EAAM,IAClCA,GAAOG,GAEHH,EAAM,GAAKA,GAAOG,EACtB,MAAM,IAAI,WAAYX,GAAQ,gHAAiHW,EAAKH,CAAI,CAAE,EAK5J,GADAI,EAAM,EACDL,IAAU,eAAiB,CAC/B,IAAMQ,EAAIL,EAAM,EAAGK,GAAK,EAAGA,IAC1BD,EAAIT,EAASU,CAAE,EACVD,EAAI,GACRD,EAAIZ,GAAOO,EAAIM,CAAE,EACjBN,GAAOK,EAAIC,EACXD,GAAKT,EAAOW,CAAE,EAAI,IAElBF,EAAIZ,GAAOO,EAAIM,CAAE,EACjBN,GAAOK,EAAIC,GAEZF,GAAOC,EAAIX,GAAKY,CAAE,EAEnB,OAAOF,CACR,CAEA,IAAMG,EAAI,EAAGA,EAAIL,EAAOK,IACvBD,EAAIT,EAASU,CAAE,EACVD,EAAI,GACRD,EAAIZ,GAAOO,EAAIM,CAAE,EACjBN,GAAOK,EAAIC,EACXD,GAAKT,EAAOW,CAAE,EAAI,IAElBF,EAAIZ,GAAOO,EAAIM,CAAE,EACjBN,GAAOK,EAAIC,GAEZF,GAAOC,EAAIX,GAAKY,CAAE,EAEnB,OAAOF,CACR,CAKAb,GAAO,QAAUI,KCjIjB,IAAAa,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAwCA,IAAIC,GAAY,KAKhBD,GAAO,QAAUC,KC7CjB,IAAAC,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAsBA,IAAIC,GAAO,QAAS,iCAAkC,EAClDC,GAAU,KACVC,GAAW,KACXC,GAAa,KACbC,GAAY,KACZC,GAAW,KACXC,GAAW,KACXC,GAAU,KACVC,GAAS,QAAS,uBAAwB,EA6D9C,SAASC,GAAgBC,EAAKC,EAAQ,CACrC,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAKJ,GAHAJ,EAAIL,EAAM,OACVG,EAAKZ,GAAUQ,EAAK,EAAM,EAC1BO,EAAIH,EAAG,OACFE,EAAIC,EACR,MAAM,IAAI,MAAO,8JAA+J,EAIjL,IADAL,EAAU,CAAC,EACLO,EAAI,EAAGA,EAAIH,EAAGG,IACnBP,EAAQ,KAAM,CAAE,EAIjB,IADAG,EAAKZ,GAAYO,EAAK,EAAM,EACtBS,EAAIH,EAAE,EAAGG,GAAK,EAAGA,IAEtB,GADAC,EAAIH,EAAID,EAAIG,EACP,EAAAC,EAAI,GAMT,IAFAF,EAAIJ,EAAIM,CAAE,EACVP,EAAMF,EAAOQ,CAAE,EACVN,IAAQ,GAAKA,EAAMK,EACvB,MAAM,IAAI,MAAOV,GAAQ,8PAA+PR,GAAMc,CAAG,EAAE,KAAM,IAAK,EAAGd,GAAMW,CAAM,EAAE,KAAM,IAAK,EAAGQ,CAAE,CAAE,EAElV,GAAKD,IAAML,EACVD,EAASO,CAAE,EAAIJ,EAAIK,CAAE,UACVF,IAAM,EAEjBN,EAASO,CAAE,EAAI,MAGf,OAAM,IAAI,MAAOX,GAAQ,2IAA4IR,GAAMc,CAAG,EAAE,KAAM,IAAK,EAAGd,GAAMW,CAAM,EAAE,KAAM,IAAK,EAAGQ,CAAE,CAAE,EAGhO,OAAOlB,GAASK,GAAUI,CAAI,EAAGH,GAASG,CAAI,EAAGV,GAAMW,CAAM,EAAGC,EAASR,GAAWM,CAAI,EAAGL,GAAUK,CAAI,CAAE,CAC5G,CAKAX,GAAO,QAAUU,KC9IjB,IAAAY,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cA8DA,IAAIC,GAAO,KAKXD,GAAO,QAAUC,KCnEjB,IAAAC,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAsBA,IAAIC,GAAkB,QAAS,6CAA8C,EACzEC,GAAiB,QAAS,oCAAqC,EAC/DC,GAAS,QAAS,2BAA4B,EAC9CC,GAAQ,QAAS,0BAA2B,EAC5CC,GAAS,KACTC,GAAU,KACVC,GAAS,QAAS,uBAAwB,EA4B9C,SAASC,GAAiBC,EAAOC,EAAOC,EAAOC,EAAQ,CACtD,IAAIC,EACAC,EAGJ,GADAD,EAAMR,GAAQK,EAAO,CAAE,EAClBG,IAAQ,KACZ,MAAM,IAAI,UAAWN,GAAQ,iFAAkFG,CAAM,CAAE,EAExH,MAAK,WAAW,KAAMA,CAAM,GAAK,OAAOD,GAAU,WACjDA,EAAQ,CAAEA,EAAO,CAAI,GAEjBR,GAAiBY,CAAI,EACzBC,EAAMZ,GAAgBQ,CAAM,EAE5BI,EAAMX,GAAQO,CAAM,EAErBI,EAAKD,EAAK,EAAGJ,CAAM,EACZ,IAAIH,GAASI,EAAOG,EAAKF,EAAOP,GAAOO,EAAM,MAAO,EAAG,EAAGC,CAAM,CACxE,CAKAZ,GAAO,QAAUQ,KC/EjB,IAAAO,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cA2CA,IAAIC,GAAO,KAKXD,GAAO,QAAUC,KChDjB,IAAAC,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAkLA,SAASC,GAAiBC,EAAS,CAClC,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAIJ,GAFAH,EAAIR,EAAO,OACXE,EAAM,CAAC,EACFM,IAAM,EACV,OAAON,EAMR,GAJAE,EAAKJ,EAAQ,CAAE,EACfS,EAAIL,EAAG,OAGFI,IAAM,EAAI,CAEd,IAAME,EAAI,EAAGA,EAAID,EAAGC,IACnBR,EAAI,KAAME,EAAIM,CAAE,CAAE,EAEnB,OAAOR,CACR,CAGA,IADAD,EAAQ,CAAEQ,CAAE,EACNC,EAAI,EAAGA,EAAIF,EAAGE,IACnBT,EAAM,KAAMD,EAAQU,CAAE,EAAE,MAAO,EAC1BT,EAAOS,CAAE,EAAID,IACjBA,EAAIR,EAAOS,CAAE,GAIf,IAAMA,EAAI,EAAGA,EAAID,EAAGC,IACnBR,EAAI,KAAM,CAAE,EAIb,IADAQ,EAAID,EAAI,EACAC,GAAK,GAAI,CAOhB,IANAL,EAAKJ,EAAO,CAAE,EAAIQ,EAAIC,EACjBL,GAAM,EACVF,EAAMC,EAAIC,CAAG,EAEbF,EAAM,EAEDQ,EAAI,EAAGA,EAAIH,EAAGG,IAAM,CAOzB,GANAL,EAAKL,EAAOU,CAAE,EAAIF,EAAIC,EACjBJ,GAAM,EACVC,EAAIP,EAAQW,CAAE,EAAGL,CAAG,EAEpBC,EAAI,EAEAJ,IAAQ,EAAI,CAChBA,EAAMI,EACN,QACD,CACA,GAAK,EAAAA,IAAM,GAAKJ,IAAQI,GAKxB,OAAO,IACR,CACAL,EAAKQ,CAAE,EAAIP,EACXO,GAAK,CACN,CACA,OAAOR,CACR,CAKAJ,GAAO,QAAUC,KC/PjB,IAAAa,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAuCA,IAAIC,GAAO,KAKXD,GAAO,QAAUC,KC5CjB,IAAAC,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAsBA,IAAIC,GAAW,KACXC,GAAQ,KAmBZ,SAASC,GAAWC,EAAM,CACzB,IAAIC,EAAKH,GAAOE,CAAI,EACpB,OAAKC,EACGJ,GAAUI,CAAG,EAEd,IACR,CAKAL,GAAO,QAAUG,KCrDjB,IAAAG,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAqCA,IAAIC,GAAO,KAKXD,GAAO,QAAUC,KC1CjB,IAAAC,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cA4BA,SAASC,IAAQ,CAChB,MAAO,CACN,OAAU,IAEV,KAAQ,IAER,UAAa,IACb,WAAc,IAEd,QAAW,IACX,SAAY,IACZ,QAAW,IACX,QAAW,IACX,SAAY,IAEZ,QAAW,IAEX,KAAQ,IACR,MAAS,IACT,MAAS,IACT,MAAS,IACT,OAAU,IACV,OAAU,IAEV,MAAS,IACT,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,QAAW,IACX,QAAW,GACZ,CACD,CAKAD,GAAO,QAAUC,KCjEjB,IAAAC,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAsBA,IAAIC,GAAU,KACVC,GAAQ,KAKRC,GAsBJ,SAASC,GAAWC,EAAQ,CAC3B,OAAK,UAAU,SAAW,EAClBH,GAAM,GAETC,KAAU,SACdA,GAAQD,GAAM,GAERC,GAAOF,GAASI,CAAM,CAAE,GAAK,KACrC,CAKAL,GAAO,QAAUI,KC/DjB,IAAAE,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cA2CA,IAAIC,GAAO,KAKXD,GAAO,QAAUC,KChDjB,IAAAC,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAsBA,IAAIC,GAAgB,QAAS,8BAA+B,EACxDC,GAAY,KAKZC,GAsBJ,SAASC,GAAYC,EAAK,CACzB,OAAK,UAAU,SAAW,EAClBJ,GAAeC,GAAU,CAAE,GAE9BC,KAAU,SACdA,GAAQF,GAAeC,GAAU,CAAE,GAE7BC,GAAOE,CAAG,GAAK,KACvB,CAKAL,GAAO,QAAUI,KC/DjB,IAAAE,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cA2CA,IAAIC,GAAa,KAKjBD,GAAO,QAAUC,KChDjB,IAAAC,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cA4BA,SAASC,IAAQ,CAChB,MAAO,CACN,OAAU,OAEV,KAAQ,UAER,UAAa,iDACb,WAAc,iDAEd,QAAW,uCACX,SAAY,8BACZ,QAAW,yCACX,QAAW,yCACX,SAAY,4CAEZ,QAAW,sBAEX,KAAQ,uBACR,MAAS,wBACT,MAAS,wBACT,MAAS,wBACT,OAAU,yBACV,OAAU,yBAEV,MAAS,yBACT,OAAU,mCACV,OAAU,0BACV,OAAU,0BACV,OAAU,0BACV,QAAW,2BACX,QAAW,0BACZ,CACD,CAKAD,GAAO,QAAUC,KCjEjB,IAAAC,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAsBA,IAAIC,GAAU,KACVC,GAAQ,KAKRC,GAsBJ,SAASC,GAAWC,EAAQ,CAC3B,OAAK,UAAU,SAAW,EAClBH,GAAM,GAETC,KAAU,SACdA,GAAQD,GAAM,GAERC,GAAOF,GAASI,CAAM,CAAE,GAAK,KACrC,CAKAL,GAAO,QAAUI,KC/DjB,IAAAE,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cA2CA,IAAIC,GAAO,KAKXD,GAAO,QAAUC,KChDjB,IAAAC,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAsBA,IAAIC,GAAW,KACXC,GAAW,KAmBf,SAASC,GAASC,EAAQ,CACzB,IAAIC,EAAM,OAAOD,EACjB,OAAKC,IAAM,SACDJ,GAAUG,CAAM,EAAMA,EAAQ,KAEnCC,IAAM,SACHH,GAAUE,CAAM,EAEjB,IACR,CAKAJ,GAAO,QAAUG,KCxDjB,IAAAG,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAkCA,IAAIC,GAAO,KAKXD,GAAO,QAAUC,KCvCjB,IAAAC,GAAAC,EAAA,SAAAC,GAAAC,GAAA,CAAAA,GAAA,SACC,OAAU,KACV,KAAQ,OACR,UAAa,qBACb,WAAc,sBACd,QAAW,KACX,SAAY,KACZ,QAAW,QACX,QAAW,SACX,SAAY,KACZ,QAAW,KACX,KAAQ,SACR,MAAS,UACT,MAAS,UACT,MAAS,UACT,OAAU,KACV,OAAU,KACV,MAAS,UACT,OAAU,KACV,OAAU,WACV,OAAU,WACV,OAAU,WACV,QAAW,KACX,QAAW,IACZ,ICxBA,IAAAC,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAsBA,IAAIC,GAAU,KACVC,GAAQ,KAkBZ,SAASC,GAASC,EAAQ,CACzB,OAAOF,GAAOD,GAASG,CAAM,CAAE,GAAK,IACrC,CAKAJ,GAAO,QAAUG,KChDjB,IAAAE,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAqCA,IAAIC,GAAU,KAKdD,GAAO,QAAUC,KC1CjB,IAAAC,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAsBA,IAAIC,GAAoB,QAAS,qCAAsC,EACnEC,GAAuB,QAAS,uCAAwC,EAAE,YAC1EC,GAAU,KACVC,GAAS,QAAS,uBAAwB,EA2B9C,SAASC,GAAmBC,EAAQC,EAAKC,EAAO,CAC/C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAEJ,GAAK,CAACf,GAAmBK,CAAO,EAC/B,MAAM,IAAI,UAAWF,GAAQ,8EAA+EE,CAAO,CAAE,EAEtH,GAAK,CAACJ,GAAsBK,CAAI,EAC/B,MAAM,IAAI,UAAWH,GAAQ,gFAAiFG,CAAI,CAAE,EAErH,GAAK,CAACL,GAAsBM,CAAK,EAChC,MAAM,IAAI,UAAWJ,GAAQ,+EAAgFI,CAAK,CAAE,EAGrH,GADAC,EAAMH,EAAO,OACRG,IAAQ,EACZ,MAAM,IAAI,WAAY,qEAAsE,EAG7F,GADAI,EAAIN,EAAMC,EACLC,EAAII,IAAM,EACd,MAAM,IAAI,WAAY,sGAAuG,EAU9H,IARAH,EAAM,CAAC,EAGPC,EAAM,CAAC,EAGPG,EAAI,EAAID,EACRG,EAAI,EAAIT,EACFQ,EAAI,EAAGA,GAAKD,EAAGC,IACfA,IAAM,EACLA,IAAMC,EACVL,EAAI,KAAM,SAAU,EAEpBA,EAAI,KAAM,GAAI,EAEJI,IAAMD,EACZC,IAAMC,EACVL,EAAI,KAAM,SAAU,EAEpBA,EAAI,KAAM,GAAI,EAEJI,IAAMC,EACjBL,EAAI,KAAM,QAAS,EACRI,EAAE,IAAM,EACnBJ,EAAI,KAAM,EAAG,EAEbA,EAAI,KAAM,IAAK,EAGjB,IAAMI,EAAI,EAAGA,EAAIN,EAAKM,IACrBH,EAAKT,GAASG,EAAQS,CAAE,CAAE,EACrBH,IAAO,OACXA,EAAKN,EAAQS,CAAE,GAEhBC,EAAID,EAAIF,EACRF,EAAM,EAAEK,EAAG,CAAE,EAAIJ,EACZI,IAAMH,EAAE,GACZH,EAAI,KAAMC,EAAI,KAAM,EAAG,CAAE,EAG3B,OAAOD,CACR,CAKAV,GAAO,QAAUK,KC7HjB,IAAAY,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAuCA,IAAIC,GAAO,KAKXD,GAAO,QAAUC,KC5CjB,IAAAC,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAsBA,IAAIC,GAAgB,KAChBC,GAAiB,KACjBC,GAAU,KACVC,GAAQ,KACRC,GAAa,QAAS,qBAAsB,EAC5CC,GAAc,QAAS,6BAA8B,EAwBzD,SAASC,GAAOC,EAAOC,EAAOC,EAAQ,CACrC,IAAIC,EACAC,EACAC,EACAC,EAEJ,OAAAH,EAAQF,EAAM,OACTE,EAAQ,GACZE,EAAMT,GAAOK,CAAM,EACnBK,EAAKb,GAAeQ,EAAOC,CAAM,IAGjCG,EAAM,EACNC,EAAK,CAAE,CAAE,GAELN,IAAU,SACdI,EAAMN,GAAaO,CAAI,EAEvBD,EAAMP,GAAYQ,EAAKL,CAAM,EAEvB,IAAIL,GAASK,EAAOI,EAAKH,EAAOK,EAAIZ,GAAgBO,EAAOK,CAAG,EAAGJ,CAAM,CAC/E,CAKAV,GAAO,QAAUO,KC7EjB,IAAAQ,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAwCA,IAAIC,GAAO,KAKXD,GAAO,QAAUC,KC7CjB,IAAAC,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAsBA,IAAIC,GAAgB,KAChBC,GAAiB,KACjBC,GAAQ,KACRC,GAAW,KACXC,GAAW,KACXC,GAAW,KACXC,GAAa,QAAS,qBAAsB,EAC5CC,GAAc,QAAS,6BAA8B,EA2BzD,SAASC,GAAWC,EAAI,CACvB,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAEJ,OAAAA,EAAKb,GAAUM,CAAE,EACjBK,EAAKV,GAAUK,EAAG,EAAK,EACvBI,EAAMR,GAAUI,CAAE,EAElBC,EAAQI,EAAG,OACNJ,EAAQ,GACZC,EAAMT,GAAOY,CAAG,EAChBC,EAAKf,GAAec,EAAID,CAAI,IAG5BF,EAAM,EACNI,EAAK,CAAE,CAAE,GAELC,IAAO,SACXJ,EAAML,GAAaI,CAAI,EAEvBC,EAAMN,GAAYK,EAAKK,CAAG,EAEpB,IAAIP,EAAE,YAAaO,EAAIJ,EAAKE,EAAIC,EAAId,GAAgBa,EAAIC,CAAG,EAAGF,CAAI,CAC1E,CAKAd,GAAO,QAAUS,KCzFjB,IAAAS,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cA4CA,IAAIC,GAAO,KAKXD,GAAO,QAAUC,KCjDjB,IAAAC,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAsBA,IAAIC,GAAa,KACbC,GAAW,KACXC,GAAW,KACXC,GAAa,KACbC,GAAY,KACZC,GAAW,KACXC,GAAU,KACVC,GAAS,QAAS,uBAAwB,EA4C9C,SAASC,GAAkBC,EAAGC,EAAO,CACpC,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAUJ,GARAH,EAAKZ,GAAUO,EAAG,EAAM,EACxBM,EAAKZ,GAAYM,EAAG,EAAM,EAC1BI,EAAMR,GAAUI,CAAE,EAClBO,EAAIF,EAAG,OAEPH,EAAU,CAAC,EACXC,EAAQ,CAAC,EAEJF,EAAO,EAAI,CACf,GAAKA,EAAO,CAACM,EAAE,EACd,MAAM,IAAI,WAAYT,GAAQ,wGAAyGS,EAAGA,EAAGN,CAAK,CAAE,EAErJA,GAAQM,EAAI,CACb,SAAYN,EAAOM,EAClB,MAAM,IAAI,WAAYT,GAAQ,wGAAyGS,EAAGA,EAAGN,CAAK,CAAE,EAErJ,GAAKA,IAAS,EAMb,IAJAE,EAAM,KAAM,CAAE,EACdD,EAAQ,KAAMI,EAAI,CAAE,CAAE,EAGhBE,EAAI,EAAGA,EAAID,EAAGC,IACnBL,EAAM,KAAME,EAAIG,CAAE,CAAE,EACpBN,EAAQ,KAAMI,EAAIE,CAAE,CAAE,UAEZP,IAASM,EAAI,CAExB,IAAMC,EAAI,EAAGA,EAAID,EAAGC,IACnBL,EAAM,KAAME,EAAIG,CAAE,CAAE,EACpBN,EAAQ,KAAMI,EAAIE,CAAE,CAAE,EAGvBL,EAAM,KAAM,CAAE,EACdD,EAAQ,KAAMI,EAAIC,EAAE,CAAE,CAAE,CACzB,KAEC,KAAMC,EAAI,EAAGA,EAAID,EAAE,EAAGC,IAChBA,IAAMP,GACVE,EAAM,KAAM,CAAE,EACTC,IAAQ,YACZF,EAAQ,KAAMI,EAAIE,EAAE,CAAE,CAAE,EAExBN,EAAQ,KAAMI,EAAIE,CAAE,CAAE,GAEZA,EAAIP,GACfE,EAAM,KAAME,EAAIG,CAAE,CAAE,EACpBN,EAAQ,KAAMI,EAAIE,CAAE,CAAE,IAEtBL,EAAM,KAAME,EAAIG,EAAE,CAAE,CAAE,EACtBN,EAAQ,KAAMI,EAAIE,EAAE,CAAE,CAAE,GAI3B,OAAKjB,GAAYS,CAAE,EAEX,IAAIA,EAAE,YAAaR,GAAUQ,CAAE,EAAGH,GAASG,CAAE,EAAGG,EAAOD,EAASP,GAAWK,CAAE,EAAGI,EAAK,CAC3F,SAAY,EACb,CAAC,EAEK,IAAIJ,EAAE,YAAaR,GAAUQ,CAAE,EAAGH,GAASG,CAAE,EAAGG,EAAOD,EAASP,GAAWK,CAAE,EAAGI,CAAI,CAC5F,CAKAd,GAAO,QAAUS,KCpJjB,IAAAU,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAwDA,IAAIC,GAAO,KAKXD,GAAO,QAAUC,KC7DjB,IAAAC,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cA+BA,SAASC,GAAYC,EAAOC,EAASC,EAAS,CAC7C,IAAIC,EACAC,EACAC,EAIJ,IAFAF,EAAOH,EAAM,KACbI,EAAMF,EACAG,EAAI,EAAGA,EAAIF,EAAK,OAAQE,IAC7BD,GAAOH,EAASI,CAAE,EAAIF,EAAME,CAAE,EAAE,MAEjC,OAAOD,CACR,CAKAN,GAAO,QAAUC,KC/CjB,IAAAO,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAyCA,SAASC,GAAeC,EAAOC,EAASC,EAAQ,CAC/C,IAAIC,EACAC,EACAC,EACAC,EAIJ,IAFAH,EAAOH,EAAM,KACbI,EAAM,CAAC,EACDC,EAAI,EAAGA,EAAIH,EAAM,OAAQG,IAC9BC,EAAIJ,EAAOG,CAAE,EACbD,EAAI,KAAMH,EAAQK,CAAC,EAAIH,EAAKG,CAAC,EAAE,IAAK,EAErC,OAAOF,CACR,CAKAN,GAAO,QAAUC,KC3DjB,IAAAQ,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAsBA,IAAIC,GAAS,KACTC,GAAQ,QAAS,0BAA2B,EAgBhD,SAASC,GAAOC,EAAMC,EAAOC,EAAOC,EAAOC,EAAW,CACrD,IAAIC,EACAC,EAEJ,OAAAA,EAAQJ,EAAM,OACTI,IAAU,EACdD,EAAU,CAAE,CAAE,EAEdA,EAAUP,GAAOQ,CAAM,EAEjB,IAAIN,EAAMC,EAAOJ,GAAQI,EAAO,CAAE,EAAGC,EAAOG,EAAS,EAAGF,EAAO,CACrE,SAAYC,CACb,CAAC,CACF,CAKAR,GAAO,QAAUG,KCzDjB,IAAAQ,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAsBA,IAAIC,GAAsB,QAAS,0CAA2C,EAC1EC,GAAuB,QAAS,0CAA2C,EAC3EC,GAAa,QAAS,0BAA2B,EACjDC,GAAO,QAAS,iCAAkC,EAClDC,GAAQ,QAAS,0BAA2B,EAC5CC,GAAQ,KACRC,GAAW,KACXC,GAAW,KACXC,GAAa,KACbC,GAAY,KACZC,GAAW,KACXC,GAAU,KACVC,GAAS,QAAS,uBAAwB,EAC1CC,GAAa,KACbC,GAAgB,KAChBC,GAAQ,KAgDZ,SAASC,GAAOC,EAAGC,EAAGC,EAAQC,EAAW,CACxC,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAWJ,GARAP,EAAQjB,GAAUW,CAAE,EACpBO,EAAQjB,GAAUU,EAAG,EAAK,EAC1BI,EAAUb,GAAYS,EAAG,EAAK,EAC9BK,EAASb,GAAWQ,CAAE,EACtBQ,EAAQf,GAAUO,CAAE,EACpBU,EAAQH,EAAM,OAGTN,EAAE,QAAUS,EAChB,MAAM,IAAI,WAAYf,GAAQ,uIAAwIY,EAAM,KAAM,GAAI,EAAGN,EAAE,KAAM,CAAE,EAMpM,GAHAU,EAAOX,EAAE,YAGJU,IAAU,EACd,OAAO,IAAIC,EAAML,EAAOZ,GAASM,CAAE,EAAGO,EAAOH,EAASC,EAAQG,EAAO,CACpE,SAAY,CAACL,CACd,CAAC,EASF,GANAM,EAAQzB,GAAsBiB,CAAE,EAGhCY,EAAK9B,GAAqBkB,EAAGM,EAAO,EAAK,EAGpCM,EAAG,KAAO,CACd,GAAKX,EACJ,MAAM,IAAI,WAAYP,GAAQ,mEAAoEY,EAAM,KAAM,GAAI,CAAE,CAAE,EAGvHM,EAAK9B,GAAqBkB,EAAGM,EAAO,EAAM,EAG1CK,EAAK3B,GAAY4B,CAAG,EAGfzB,GAAOF,GAAM0B,EAAIH,CAAM,CAAE,EAAI,IACjCG,EAAKzB,GAAOyB,EAAG,MAAO,EAExB,MAECA,EAAK3B,GAAY4B,CAAG,EAGrB,OAAKzB,GAAOwB,CAAG,IAAM,EACbd,GAAOa,EAAML,EAAOpB,GAAM0B,EAAIH,CAAM,EAAGD,EAAO,CAACL,CAAS,GAGhEE,EAAST,GAAYiB,EAAIT,EAASC,CAAO,EAGzCO,EAAK1B,GAAM0B,EAAIH,CAAM,EAGhBG,EAAG,SAAW,EACX,IAAID,EAAML,EAAOZ,GAASM,CAAE,EAAG,CAAC,EAAG,CAAE,CAAE,EAAGK,EAAQG,EAAO,CAC/D,SAAY,CAACL,CACd,CAAC,GAGFC,EAAUP,GAAegB,EAAIT,EAASK,CAAM,EAGrC,IAAIE,EAAML,EAAOZ,GAASM,CAAE,EAAGY,EAAIR,EAASC,EAAQG,EAAO,CACjE,SAAY,CAACL,CACd,CAAC,GACF,CAKArB,GAAO,QAAUiB,KC3KjB,IAAAe,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cA6DA,IAAIC,GAAO,KAKXD,GAAO,QAAUC,KClEjB,IAAAC,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAkCA,SAASC,GAAOC,EAAI,CACnB,IAAIC,EAAID,EAAE,MACV,OAAK,OAAOC,GAAM,SACVA,EAEDD,EAAE,MAAM,MAChB,CAKAF,GAAO,QAAUC,KC7CjB,IAAAG,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAmCA,IAAIC,GAAO,KAKXD,GAAO,QAAUC,KCxCjB,IAAAC,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAsBA,IAAIC,GAAkB,QAAS,oCAAqC,EAChEC,GAAQ,QAAS,oBAAqB,EACtCC,GAAQ,KACRC,GAAS,QAAS,2BAA4B,EAC9CC,GAAQ,KACRC,GAAS,QAAS,uBAAwB,EA0C9C,SAASC,GAAkBC,EAAGC,EAAKC,EAAW,CAC7C,IAAIC,EACAC,EACAC,EAMJ,GAHAD,EAAIP,GAAOG,CAAE,EAGRI,IAAM,EACV,MAAM,IAAI,UAAWN,GAAQ,+GAAgHM,CAAE,CAAE,EAIlJ,GADAC,EAAIJ,EACCI,EAAI,GAER,GADAA,GAAKD,EACAC,EAAI,EACR,MAAM,IAAI,WAAYP,GAAQ,6GAA8GM,EAAGH,CAAI,CAAE,UAE3II,GAAKD,EAChB,MAAM,IAAI,WAAYN,GAAQ,6GAA8GM,EAAGH,CAAI,CAAE,EAGtJ,OAAAE,EAAOP,GAAQ,KAAMQ,CAAE,EACvBD,EAAME,CAAE,EAAI,IAAIX,GAAO,KAAM,KAAM,EAAG,EAG/BC,GAAOK,EAAGP,GAAiBU,CAAK,EAAG,GAAMD,CAAS,CAC1D,CAKAV,GAAO,QAAUO,KCtGjB,IAAAO,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAwDA,IAAIC,GAAO,KAKXD,GAAO,QAAUC,KC7DjB,IAAAC,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAsBA,IAAIC,GAAa,QAAS,qBAAsB,EAC5CC,GAAmB,KACnBC,GAAQ,KACRC,GAAQ,KAuCZ,SAASC,GAAQC,EAAGC,EAAW,CAE9B,OAAKH,GAAOE,CAAE,IAAM,EAEZH,GAAOG,EAAG,IAAIL,GAAc,GAAMM,CAAS,EAE5CL,GAAkBI,EAAG,GAAIC,CAAS,CAC1C,CAKAP,GAAO,QAAUK,KC5EjB,IAAAG,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAwDA,IAAIC,GAAO,KAKXD,GAAO,QAAUC,KC7DjB,IAAAC,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAsBA,IAAIC,GAAa,QAAS,qBAAsB,EAC5CC,GAAmB,KACnBC,GAAQ,KACRC,GAAQ,KAuCZ,SAASC,GAAQC,EAAGC,EAAW,CAC9B,IAAIC,EAAIJ,GAAOE,CAAE,EAGjB,OAAKE,IAAM,EAEHL,GAAOG,EAAG,IAAIL,GAAc,GAAMM,CAAS,EAG9CC,IAAM,EAEHL,GAAOG,EAAG,IAAIL,GAAY,IAAK,EAAG,GAAMM,CAAS,EAElDL,GAAkBI,EAAG,GAAIC,CAAS,CAC1C,CAKAP,GAAO,QAAUK,KCnFjB,IAAAI,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAwDA,IAAIC,GAAO,KAKXD,GAAO,QAAUC,KC7DjB,IAAAC,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAsBA,IAAIC,GAAkB,QAAS,6CAA8C,EACzEC,GAAiB,QAAS,oCAAqC,EAC/DC,GAAS,QAAS,2BAA4B,EAC9CC,GAAS,KACTC,GAAU,KACVC,GAAS,QAAS,uBAAwB,EA2B9C,SAASC,GAAgBC,EAAOC,EAAOC,EAAQ,CAC9C,IAAIC,EACAC,EAGJ,GADAD,EAAMP,GAAQK,EAAO,CAAE,EAClBE,IAAQ,KACZ,MAAM,IAAI,UAAWL,GAAQ,iFAAkFG,CAAM,CAAE,EAExH,MAAK,WAAW,KAAMA,CAAM,GAAK,OAAOD,GAAU,WACjDA,EAAQ,CAAEA,EAAO,CAAI,GAEjBP,GAAiBU,CAAI,EACzBC,EAAMV,GAAgBO,CAAM,EAE5BG,EAAMT,GAAQM,CAAM,EAErBG,EAAKD,EAAK,EAAGH,CAAM,EACZ,IAAIH,GAASI,EAAOE,EAAK,CAAC,EAAG,CAAE,CAAE,EAAG,EAAGD,CAAM,CACrD,CAKAV,GAAO,QAAUO,KC7EjB,IAAAM,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cA2CA,IAAIC,GAAO,KAKXD,GAAO,QAAUC,KChDjB,IAAAC,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAsBA,IAAIC,GAAS,QAAS,uBAAwB,EAC1CC,GAAQ,QAAS,iCAAkC,EA+BvD,SAASC,GAASC,EAAOC,EAASC,EAAQC,EAAOC,EAAKC,EAAMC,EAAM,CACjE,IAAIC,EACAC,EACAC,EACAC,EACAC,EAIJ,IAFAJ,EAAQP,EAAM,OACdQ,EAAM,EACAG,EAAI,EAAGA,EAAIJ,EAAOI,IACvBH,GAAOR,EAAOW,CAAE,EAEjB,GAAKN,IAAS,QACRD,EAAM,EACVA,EAAM,EACKA,GAAOI,IAClBJ,EAAMI,EAAM,WAEFH,IAAS,OACfD,EAAM,GACVA,GAAOI,EACFJ,EAAM,IACVA,GAAOI,EACFJ,IAAQ,IACZA,GAAOI,KAGEJ,GAAOI,IAClBJ,GAAOI,EACFJ,GAAOI,IACXJ,GAAOI,YAIJH,IAAS,aAAeD,EAAM,IAClCA,GAAOI,GAEHJ,EAAM,GAAKA,GAAOI,EACtB,MAAM,IAAI,WAAYX,GAAQ,gHAAiHW,EAAKJ,CAAI,CAAE,EAG5J,GAAKF,IAAW,EAAI,CACnB,GAAKC,IAAU,eAAiB,CAC/B,IAAMQ,EAAI,EAAGA,EAAIJ,EAAOI,IACvBD,EAAIN,EAAMJ,EAAOW,CAAE,EACnBP,GAAOM,EACPN,GAAOJ,EAAOW,CAAE,EAChBL,EAAKK,CAAE,EAAID,EAEZ,OAAOJ,CACR,CAEA,IAAMK,EAAIJ,EAAM,EAAGI,GAAK,EAAGA,IAC1BD,EAAIN,EAAMJ,EAAOW,CAAE,EACnBP,GAAOM,EACPN,GAAOJ,EAAOW,CAAE,EAChBL,EAAKK,CAAE,EAAID,EAEZ,OAAOJ,CACR,CACA,GAAKH,IAAU,eAAiB,CAC/B,IAAMQ,EAAIJ,EAAM,EAAGI,GAAK,EAAGA,IAC1BD,EAAIT,EAASU,CAAE,EACVD,EAAI,GACRD,EAAIX,GAAOM,EAAIM,CAAE,EACjBN,GAAOK,EAAIC,EACXJ,EAAKK,CAAE,EAAIX,EAAOW,CAAE,EAAI,EAAIF,IAE5BA,EAAIX,GAAOM,EAAIM,CAAE,EACjBN,GAAOK,EAAIC,EACXJ,EAAKK,CAAE,EAAIF,GAGb,OAAOH,CACR,CAEA,IAAMK,EAAI,EAAGA,EAAIJ,EAAOI,IACvBD,EAAIT,EAASU,CAAE,EACVD,EAAI,GACRD,EAAIX,GAAOM,EAAIM,CAAE,EACjBN,GAAOK,EAAIC,EACXJ,EAAKK,CAAE,EAAIX,EAAOW,CAAE,EAAI,EAAIF,IAE5BA,EAAIX,GAAOM,EAAIM,CAAE,EACjBN,GAAOK,EAAIC,EACXJ,EAAKK,CAAE,EAAIF,GAGb,OAAOH,CACR,CAKAV,GAAO,QAAUG,KCpJjB,IAAAa,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAsBA,IAAIC,GAAQ,QAAS,0BAA2B,EAC5CC,GAAgB,KAyGpB,SAASC,GAASC,EAAOC,EAASC,EAAQC,EAAOC,EAAKC,EAAO,CAC5D,OAAOP,GAAeE,EAAOC,EAASC,EAAQC,EAAOC,EAAKC,EAAMR,GAAOG,EAAM,MAAO,CAAE,CACvF,CAKAJ,GAAO,QAAUG,KCvIjB,IAAAO,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAoDA,IAAIC,GAAc,QAAS,uDAAwD,EAC/EC,GAAO,KACPC,GAAS,KAKbF,GAAaC,GAAM,SAAUC,EAAO,EAKpCH,GAAO,QAAUE,KChEjB,IAAAE,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cA8DA,SAASC,GAAoBC,EAAOC,EAASC,EAAS,CACrD,IAAIC,EACAC,EACAC,EAIJ,IAFAF,EAAQH,EAAM,OACdI,EAAMF,EACAG,EAAI,EAAGA,EAAIF,EAAOE,IAAM,CAC7B,GAAKL,EAAOK,CAAE,IAAM,EACnB,OAAOH,EAEHD,EAASI,CAAE,EAAI,IACnBD,GAAOH,EAASI,CAAE,GAAML,EAAOK,CAAE,EAAI,GAEvC,CACA,OAAOD,CACR,CAKAN,GAAO,QAAUC,KCnFjB,IAAAO,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAoEA,IAAIC,GAAqB,KAKzBD,GAAO,QAAUC,KCzEjB,IAAAC,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAsBA,IAAIC,GAAY,KACZC,GAAW,KA8Df,SAASC,GAAqBC,EAAKC,EAAQ,CAC1C,IAAIC,EACAC,EACAC,EAMJ,GAJAD,EAAIF,EAAM,OACVC,EAAKJ,GAAUE,EAAK,EAAM,EAGrBE,EAAG,SAAWC,EAAI,CACtB,IAAMC,EAAI,EAAGA,EAAID,EAAGC,IAEnB,GAAKF,EAAIE,CAAE,IAAMH,EAAOG,CAAE,EAEzB,OAAOP,GAAWG,EAAKC,CAAM,EAG/B,OAAOD,CACR,CAEA,OAAOH,GAAWG,EAAKC,CAAM,CAC9B,CAKAL,GAAO,QAAUG,KC/GjB,IAAAM,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cA8DA,IAAIC,GAAO,KAKXD,GAAO,QAAUC,KCnEjB,IAAAC,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAsBA,IAAIC,GAAc,QAAS,uDAAwD,EAC/EC,GAAsB,QAAS,uDAAwD,EACvFC,GAAoB,KA4DxB,SAASC,GAAUC,EAAMC,EAAQC,EAAM,CAEtC,OAAAN,GAAaM,EAAK,QAASF,EAAK,KAAM,EAGtCJ,GAAaM,EAAK,MAAOF,EAAK,GAAI,EAGlCJ,GAAaM,EAAK,OAAQF,EAAK,IAAK,EAGpCH,GAAqBK,EAAK,QAASC,CAAM,EAElCD,EAQP,SAASC,GAAQ,CAChB,OAAOL,GAAmBG,EAAQD,EAAK,IAAKA,EAAK,IAAK,CACvD,CACD,CAKAL,GAAO,QAAUI,KCjHjB,IAAAK,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAmDA,IAAIC,GAAO,KAKXD,GAAO,QAAUC,KCxDjB,IAAAC,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cA8DA,SAASC,GAAoBC,EAAOC,EAASC,EAAS,CACrD,IAAIC,EACAC,EACAC,EAIJ,IAFAF,EAAQH,EAAM,OACdI,EAAMF,EACAG,EAAI,EAAGA,EAAIF,EAAOE,IAAM,CAC7B,GAAKL,EAAOK,CAAE,IAAM,EACnB,OAAOH,EAEHD,EAASI,CAAE,EAAI,IACnBD,GAAOH,EAASI,CAAE,GAAML,EAAOK,CAAE,EAAI,GAEvC,CACA,OAAOD,CACR,CAKAN,GAAO,QAAUC,KCnFjB,IAAAO,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAoEA,IAAIC,GAAqB,KAKzBD,GAAO,QAAUC,KCzEjB,IAAAC,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAsBA,IAAIC,GAAY,YAgBhB,SAASC,GAAUC,EAAOC,EAAOC,EAAKC,EAAKC,EAAM,CAChD,IAAIC,EACAC,EAGJ,IAAMD,EAAIL,EAAM,EAAGK,EAAIF,EAAKE,IAC3BD,EAAKC,CAAE,EAAIH,EAAKG,CAAE,EAGnB,IAAMA,EAAIF,EAAKE,GAAK,IACnBC,GAAMJ,EAAKG,CAAE,EAAI,GAAMJ,EAAOI,CAAE,EAChCD,EAAKC,CAAE,EAAIC,EAGN,EAAAA,EAAI,IALaD,IAKtB,CAKD,IAAMA,GAAK,EAAGA,GAAK,EAAGA,IACrBD,EAAKC,CAAE,EAAIH,EAAKG,CAAE,EAEnB,OAAOD,CACR,CAaA,SAASG,GAAaP,EAAOC,EAAOC,EAAKC,EAAKC,EAAM,CACnD,IAAIC,EACAC,EAGJ,IAAMD,EAAI,EAAGA,EAAIF,EAAKE,IACrBD,EAAKC,CAAE,EAAIH,EAAKG,CAAE,EAGnB,IAAMA,EAAIF,EAAKE,EAAIL,IAClBM,GAAMJ,EAAKG,CAAE,EAAI,GAAMJ,EAAOI,CAAE,EAChCD,EAAKC,CAAE,EAAIC,EAGN,EAAAA,EAAI,IALgBD,IAKzB,CAKD,IAAMA,GAAK,EAAGA,EAAIL,EAAOK,IACxBD,EAAKC,CAAE,EAAIH,EAAKG,CAAE,EAEnB,OAAOD,CACR,CA6DA,SAASI,GAAoBP,EAAOQ,EAAOP,EAAKC,EAAKC,EAAM,CAC1D,IAAIJ,EAAQC,EAAM,OAClB,GAAKD,IAAU,EACd,OAAO,KAER,GAAKG,EAAM,GAEV,GADAA,GAAOH,EACFG,EAAM,EAEV,OAAO,aAEGA,GAAOH,EAElB,OAAO,KAER,OAAKS,IAAUX,GACPC,GAAUC,EAAOC,EAAOC,EAAKC,EAAKC,CAAI,EAGvCG,GAAaP,EAAOC,EAAOC,EAAKC,EAAKC,CAAI,CACjD,CAKAP,GAAO,QAAUW,KCvLjB,IAAAE,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAsBA,IAAIC,GAAQ,QAAS,0BAA2B,EAC5CC,GAAS,KA2Db,SAASC,GAAoBC,EAAOC,EAAOC,EAAKC,EAAM,CACrD,OAAOL,GAAQE,EAAOC,EAAOC,EAAKC,EAAKN,GAAOG,EAAM,MAAO,CAAE,CAC9D,CAKAJ,GAAO,QAAUG,KCzFjB,IAAAK,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAmDA,IAAIC,GAAc,QAAS,uDAAwD,EAC/EC,GAAO,KACPC,GAAS,KAKbF,GAAaC,GAAM,SAAUC,EAAO,EAKpCH,GAAO,QAAUE,KC/DjB,IAAAE,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cA4CA,SAASC,GAAwBC,EAAQ,CACxC,IAAIC,EACAC,EAGJ,IADAD,EAAM,EACAC,EAAI,EAAGA,EAAIF,EAAM,OAAQE,IACzBF,EAAOE,CAAE,IAAM,IACnBD,GAAO,GAGT,OAAOA,CACR,CAKAH,GAAO,QAAUC,KC5DjB,IAAAI,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cA4CA,IAAIC,GAAO,KAKXD,GAAO,QAAUC,KCjDjB,IAAAC,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAkDA,SAASC,GAAUC,EAAGC,EAAI,CACzB,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAMJ,IAJAP,EAAK,EACLC,EAAK,EAGCM,EAAI,EAAGA,EAAIX,EAAE,OAAQW,IAAM,CAUhC,IATAH,EAAKR,EAAGI,CAAG,EACXF,EAAQM,EAAK,EAAM,CAACA,EAAKA,EAEzBC,EAAKR,EAAGI,CAAG,EAEXC,EAAKF,EAAK,EACVG,EAAKF,EAAK,EAGFC,GAAM,IACbI,EAAKV,EAAGM,CAAG,EACXH,EAAQO,EAAK,EAAM,CAACA,EAAKA,EACpB,EAAAP,GAAOD,KAGZF,EAAGM,EAAG,CAAE,EAAII,EACZT,EAAGM,EAAG,CAAE,EAAIN,EAAGM,CAAG,EAClBD,GAAM,EACNC,GAAM,EAEPP,EAAGM,EAAG,CAAE,EAAIE,EACZP,EAAGM,EAAG,CAAE,EAAIE,EACZL,GAAM,EACNC,GAAM,CACP,CACD,CAKAP,GAAO,QAAUC,KCjGjB,IAAAa,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAsBA,IAAIC,GAAS,QAAS,4BAA6B,EAC/CC,GAAO,QAAS,iCAAkC,EAClDC,GAAO,QAAS,iCAAkC,EAClDC,GAAW,KAiCf,SAASC,GAAWC,EAAIC,EAAK,CAC5B,IAAIC,EAGJ,OAAAA,EAAMP,GAAQK,EAAG,MAAO,EAGxBC,EAAKL,GAAMK,CAAG,EACdH,GAAUG,EAAIC,CAAI,EAGlBF,EAAKH,GAAMG,EAAIE,CAAI,EAEZ,CACN,GAAMF,EACN,GAAMC,CACP,CACD,CAKAP,GAAO,QAAUK,KChFjB,IAAAI,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cA4CA,IAAIC,GAAO,KAKXD,GAAO,QAAUC,KCjDjB,IAAAC,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAsBA,IAAIC,GAAW,CAEd,oBAAuB,GAGvB,uBAA0B,CAC3B,EAKAD,GAAO,QAAUC,KCjCjB,IAAAC,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAsBA,IAAIC,GAAkB,KAClBC,GAAW,KAef,SAASC,GAAkBC,EAAS,CACnC,IAAIC,EAAMJ,GAAiBG,CAAO,EAClC,OAAKC,IAAQ,KACLH,GAAS,uBAERA,GAAS,oBAAoBG,EAAM,CAC7C,CAKAL,GAAO,QAAUG,KCjDjB,IAAAG,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAkCA,IAAIC,GAAO,KAKXD,GAAO,QAAUC,KCvCjB,IAAAC,GAAAC,EAAA,SAAAC,GAAAC,GAAA,cAsBA,IAAIC,GAAY,KACZC,GAAY,KAwEhB,SAASC,GAAkBC,EAAGC,EAAM,CACnC,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAyBJ,IApBAA,EAAIrB,GAAWG,EAAE,MAAOA,EAAE,OAAQ,EAClCQ,EAAKU,EAAE,GACPP,EAAKO,EAAE,GAGPhB,EAAQJ,GAAWE,EAAE,KAAM,EAG3BY,EAAKZ,EAAE,OAGPG,EAAOH,EAAE,KAGTK,EAAMM,EAAG,CAAC,EAGVP,EAAMJ,EAAE,UAAU,CAAC,EAGbiB,EAAKT,EAAG,CAAC,EAAGS,EAAK,GAStB,IARKA,EAAKf,GACTQ,EAAKO,EACLA,EAAK,IAELP,EAAKR,EACLe,GAAMf,GAEPK,EAAMK,EAAOK,EAAGN,EAAG,CAAC,EACdK,EAAKR,EAAG,CAAC,EAAGQ,EAAK,GAetB,IAdKA,EAAKd,GACTO,EAAKO,EACLA,EAAK,IAELP,EAAKP,EACLc,GAAMd,GAGPW,EAAKN,EAAQS,EAAGL,EAAG,CAAC,EAGpBL,EAAMK,EAAG,CAAC,EAAMF,EAAGE,EAAG,CAAC,EAGjBI,EAAK,EAAGA,EAAKL,EAAIK,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKL,EAAIK,IACtBV,EAAKD,EAAMU,EAAIZ,EAAI,CAAE,EACrBY,GAAMR,EAEPQ,GAAMP,CACP,CAGH,CAKAV,GAAO,QAAUG,KC/KjB,IAAAoB,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwBA,IAAIC,GAAY,KACZC,GAAY,KAwEhB,SAASC,GAAkBC,EAAGC,EAAM,CACnC,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAyBJ,IApBAA,EAAI1B,GAAWG,EAAE,MAAOA,EAAE,OAAQ,EAClCU,EAAKa,EAAE,GACPT,EAAKS,EAAE,GAGPrB,EAAQJ,GAAWE,EAAE,KAAM,EAG3Be,EAAKf,EAAE,OAGPG,EAAOH,EAAE,KAGTK,EAAMS,EAAG,CAAC,EAGVV,EAAMJ,EAAE,UAAU,CAAC,EAGbsB,EAAKZ,EAAG,CAAC,EAAGY,EAAK,GAStB,IARKA,EAAKpB,GACTW,EAAKS,EACLA,EAAK,IAELT,EAAKX,EACLoB,GAAMpB,GAEPO,EAAMM,EAAOO,EAAGR,EAAG,CAAC,EACdO,EAAKX,EAAG,CAAC,EAAGW,EAAK,GAUtB,IATKA,EAAKnB,GACTU,EAAKS,EACLA,EAAK,IAELT,EAAKV,EACLmB,GAAMnB,GAEPK,EAAMO,EAAG,CAAC,EAAMF,EAAGE,EAAG,CAAC,EACvBN,EAAMC,EAAQY,EAAGP,EAAG,CAAC,EACfM,EAAKV,EAAG,CAAC,EAAGU,EAAK,GAetB,IAdKA,EAAKlB,GACTS,EAAKS,EACLA,EAAK,IAELT,EAAKT,EACLkB,GAAMlB,GAGPc,EAAKR,EAAQY,EAAGN,EAAG,CAAC,EAGpBR,EAAMQ,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EAGjBK,EAAK,EAAGA,EAAKN,EAAIM,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKN,EAAIM,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKN,EAAIM,IACtBb,EAAKD,EAAMa,EAAIf,EAAI,CAAE,EACrBe,GAAMX,EAEPW,GAAMV,CACP,CACAU,GAAMT,CACP,CAIJ,CAKAX,GAAO,QAAUG,KCpMjB,IAAAyB,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwBA,IAAIC,GAAY,KACZC,GAAY,KAwEhB,SAASC,GAAkBC,EAAGC,EAAM,CACnC,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAyBJ,IApBAA,EAAI/B,GAAWG,EAAE,MAAOA,EAAE,OAAQ,EAClCY,EAAKgB,EAAE,GACPX,EAAKW,EAAE,GAGP1B,EAAQJ,GAAWE,EAAE,KAAM,EAG3BkB,EAAKlB,EAAE,OAGPG,EAAOH,EAAE,KAGTK,EAAMY,EAAG,CAAC,EAGVb,EAAMJ,EAAE,UAAU,CAAC,EAGb2B,EAAKf,EAAG,CAAC,EAAGe,EAAK,GAStB,IARKA,EAAKzB,GACTc,EAAKW,EACLA,EAAK,IAELX,EAAKd,EACLyB,GAAMzB,GAEPS,EAAMO,EAAOS,EAAGV,EAAG,CAAC,EACdS,EAAKd,EAAG,CAAC,EAAGc,EAAK,GAUtB,IATKA,EAAKxB,GACTa,EAAKW,EACLA,EAAK,IAELX,EAAKb,EACLwB,GAAMxB,GAEPM,EAAMS,EAAG,CAAC,EAAMF,EAAGE,EAAG,CAAC,EACvBP,EAAMC,EAAQe,EAAGT,EAAG,CAAC,EACfQ,EAAKb,EAAG,CAAC,EAAGa,EAAK,GAUtB,IATKA,EAAKvB,GACTY,EAAKW,EACLA,EAAK,IAELX,EAAKZ,EACLuB,GAAMvB,GAEPK,EAAMU,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBR,EAAMC,EAAQe,EAAGR,EAAG,CAAC,EACfO,EAAKZ,EAAG,CAAC,EAAGY,EAAK,GAetB,IAdKA,EAAKtB,GACTW,EAAKW,EACLA,EAAK,IAELX,EAAKX,EACLsB,GAAMtB,GAGPiB,EAAKV,EAAQe,EAAGP,EAAG,CAAC,EAGpBX,EAAMW,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EAGjBM,EAAK,EAAGA,EAAKP,EAAIO,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKP,EAAIO,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKP,EAAIO,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKP,EAAIO,IACtBhB,EAAKD,EAAMgB,EAAIlB,EAAI,CAAE,EACrBkB,GAAMd,EAEPc,GAAMb,CACP,CACAa,GAAMZ,CACP,CACAY,GAAMX,CACP,CAKL,CAKAZ,GAAO,QAAUG,KCvNjB,IAAA8B,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwBA,IAAIC,GAAY,KACZC,GAAY,KAwEhB,SAASC,GAAkBC,EAAGC,EAAM,CACnC,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAyBJ,IApBAA,EAAIpC,GAAWG,EAAE,MAAOA,EAAE,OAAQ,EAClCc,EAAKmB,EAAE,GACPb,EAAKa,EAAE,GAGP/B,EAAQJ,GAAWE,EAAE,KAAM,EAG3BqB,EAAKrB,EAAE,OAGPG,EAAOH,EAAE,KAGTK,EAAMe,EAAG,CAAC,EAGVhB,EAAMJ,EAAE,UAAU,CAAC,EAGbgC,EAAKlB,EAAG,CAAC,EAAGkB,EAAK,GAStB,IARKA,EAAK9B,GACTiB,EAAKa,EACLA,EAAK,IAELb,EAAKjB,EACL8B,GAAM9B,GAEPW,EAAMQ,EAAOW,EAAGZ,EAAG,CAAC,EACdW,EAAKjB,EAAG,CAAC,EAAGiB,EAAK,GAUtB,IATKA,EAAK7B,GACTgB,EAAKa,EACLA,EAAK,IAELb,EAAKhB,EACL6B,GAAM7B,GAEPO,EAAMW,EAAG,CAAC,EAAMF,EAAGE,EAAG,CAAC,EACvBR,EAAMC,EAAQkB,EAAGX,EAAG,CAAC,EACfU,EAAKhB,EAAG,CAAC,EAAGgB,EAAK,GAUtB,IATKA,EAAK5B,GACTe,EAAKa,EACLA,EAAK,IAELb,EAAKf,EACL4B,GAAM5B,GAEPM,EAAMY,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBT,EAAMC,EAAQkB,EAAGV,EAAG,CAAC,EACfS,EAAKf,EAAG,CAAC,EAAGe,EAAK,GAUtB,IATKA,EAAK3B,GACTc,EAAKa,EACLA,EAAK,IAELb,EAAKd,EACL2B,GAAM3B,GAEPK,EAAMa,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EACvBV,EAAMC,EAAQkB,EAAGT,EAAG,CAAC,EACfQ,EAAKd,EAAG,CAAC,EAAGc,EAAK,GAetB,IAdKA,EAAK1B,GACTa,EAAKa,EACLA,EAAK,IAELb,EAAKb,EACL0B,GAAM1B,GAGPoB,EAAKZ,EAAQkB,EAAGR,EAAG,CAAC,EAGpBd,EAAMc,EAAG,CAAC,EAAML,EAAGK,EAAG,CAAC,EAGjBO,EAAK,EAAGA,EAAKR,EAAIQ,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKR,EAAIQ,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKR,EAAIQ,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKR,EAAIQ,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKR,EAAIQ,IACtBnB,EAAKD,EAAMmB,EAAIrB,EAAI,CAAE,EACrBqB,GAAMjB,EAEPiB,GAAMhB,CACP,CACAgB,GAAMf,CACP,CACAe,GAAMd,CACP,CACAc,GAAMb,CACP,CAMN,CAKAb,GAAO,QAAUG,KC1OjB,IAAAmC,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwBA,IAAIC,GAAY,KACZC,GAAY,KAwEhB,SAASC,GAAkBC,EAAGC,EAAM,CACnC,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAyBJ,IApBAA,EAAIzC,GAAWG,EAAE,MAAOA,EAAE,OAAQ,EAClCgB,EAAKsB,EAAE,GACPf,EAAKe,EAAE,GAGPpC,EAAQJ,GAAWE,EAAE,KAAM,EAG3BwB,EAAKxB,EAAE,OAGPG,EAAOH,EAAE,KAGTK,EAAMkB,EAAG,CAAC,EAGVnB,EAAMJ,EAAE,UAAU,CAAC,EAGbqC,EAAKrB,EAAG,CAAC,EAAGqB,EAAK,GAStB,IARKA,EAAKnC,GACToB,EAAKe,EACLA,EAAK,IAELf,EAAKpB,EACLmC,GAAMnC,GAEPa,EAAMS,EAAOa,EAAGd,EAAG,CAAC,EACda,EAAKpB,EAAG,CAAC,EAAGoB,EAAK,GAUtB,IATKA,EAAKlC,GACTmB,EAAKe,EACLA,EAAK,IAELf,EAAKnB,EACLkC,GAAMlC,GAEPQ,EAAMa,EAAG,CAAC,EAAMF,EAAGE,EAAG,CAAC,EACvBT,EAAMC,EAAQqB,EAAGb,EAAG,CAAC,EACfY,EAAKnB,EAAG,CAAC,EAAGmB,EAAK,GAUtB,IATKA,EAAKjC,GACTkB,EAAKe,EACLA,EAAK,IAELf,EAAKlB,EACLiC,GAAMjC,GAEPO,EAAMc,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBV,EAAMC,EAAQqB,EAAGZ,EAAG,CAAC,EACfW,EAAKlB,EAAG,CAAC,EAAGkB,EAAK,GAUtB,IATKA,EAAKhC,GACTiB,EAAKe,EACLA,EAAK,IAELf,EAAKjB,EACLgC,GAAMhC,GAEPM,EAAMe,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EACvBX,EAAMC,EAAQqB,EAAGX,EAAG,CAAC,EACfU,EAAKjB,EAAG,CAAC,EAAGiB,EAAK,GAUtB,IATKA,EAAK/B,GACTgB,EAAKe,EACLA,EAAK,IAELf,EAAKhB,EACL+B,GAAM/B,GAEPK,EAAMgB,EAAG,CAAC,EAAML,EAAGK,EAAG,CAAC,EACvBZ,EAAMC,EAAQqB,EAAGV,EAAG,CAAC,EACfS,EAAKhB,EAAG,CAAC,EAAGgB,EAAK,GAetB,IAdKA,EAAK9B,GACTe,EAAKe,EACLA,EAAK,IAELf,EAAKf,EACL8B,GAAM9B,GAGPuB,EAAKd,EAAQqB,EAAGT,EAAG,CAAC,EAGpBjB,EAAMiB,EAAG,CAAC,EAAMN,EAAGM,EAAG,CAAC,EAGjBQ,EAAK,EAAGA,EAAKT,EAAIS,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKT,EAAIS,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKT,EAAIS,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKT,EAAIS,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKT,EAAIS,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKT,EAAIS,IACtBtB,EAAKD,EAAMsB,EAAIxB,EAAI,CAAE,EACrBwB,GAAMpB,EAEPoB,GAAMnB,CACP,CACAmB,GAAMlB,CACP,CACAkB,GAAMjB,CACP,CACAiB,GAAMhB,CACP,CACAgB,GAAMf,CACP,CAOP,CAKAd,GAAO,QAAUG,KC7PjB,IAAAwC,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwBA,IAAIC,GAAY,KACZC,GAAY,KAwEhB,SAASC,GAAkBC,EAAGC,EAAM,CACnC,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAyBJ,IApBAA,EAAI9C,GAAWG,EAAE,MAAOA,EAAE,OAAQ,EAClCkB,EAAKyB,EAAE,GACPjB,EAAKiB,EAAE,GAGPzC,EAAQJ,GAAWE,EAAE,KAAM,EAG3B2B,EAAK3B,EAAE,OAGPG,EAAOH,EAAE,KAGTK,EAAMqB,EAAG,CAAC,EAGVtB,EAAMJ,EAAE,UAAU,CAAC,EAGb0C,EAAKxB,EAAG,CAAC,EAAGwB,EAAK,GAStB,IARKA,EAAKxC,GACTuB,EAAKiB,EACLA,EAAK,IAELjB,EAAKvB,EACLwC,GAAMxC,GAEPe,EAAMU,EAAOe,EAAGhB,EAAG,CAAC,EACde,EAAKvB,EAAG,CAAC,EAAGuB,EAAK,GAUtB,IATKA,EAAKvC,GACTsB,EAAKiB,EACLA,EAAK,IAELjB,EAAKtB,EACLuC,GAAMvC,GAEPS,EAAMe,EAAG,CAAC,EAAMF,EAAGE,EAAG,CAAC,EACvBV,EAAMC,EAAQwB,EAAGf,EAAG,CAAC,EACfc,EAAKtB,EAAG,CAAC,EAAGsB,EAAK,GAUtB,IATKA,EAAKtC,GACTqB,EAAKiB,EACLA,EAAK,IAELjB,EAAKrB,EACLsC,GAAMtC,GAEPQ,EAAMgB,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBX,EAAMC,EAAQwB,EAAGd,EAAG,CAAC,EACfa,EAAKrB,EAAG,CAAC,EAAGqB,EAAK,GAUtB,IATKA,EAAKrC,GACToB,EAAKiB,EACLA,EAAK,IAELjB,EAAKpB,EACLqC,GAAMrC,GAEPO,EAAMiB,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EACvBZ,EAAMC,EAAQwB,EAAGb,EAAG,CAAC,EACfY,EAAKpB,EAAG,CAAC,EAAGoB,EAAK,GAUtB,IATKA,EAAKpC,GACTmB,EAAKiB,EACLA,EAAK,IAELjB,EAAKnB,EACLoC,GAAMpC,GAEPM,EAAMkB,EAAG,CAAC,EAAML,EAAGK,EAAG,CAAC,EACvBb,EAAMC,EAAQwB,EAAGZ,EAAG,CAAC,EACfW,EAAKnB,EAAG,CAAC,EAAGmB,EAAK,GAUtB,IATKA,EAAKnC,GACTkB,EAAKiB,EACLA,EAAK,IAELjB,EAAKlB,EACLmC,GAAMnC,GAEPK,EAAMmB,EAAG,CAAC,EAAMN,EAAGM,EAAG,CAAC,EACvBd,EAAMC,EAAQwB,EAAGX,EAAG,CAAC,EACfU,EAAKlB,EAAG,CAAC,EAAGkB,EAAK,GAetB,IAdKA,EAAKlC,GACTiB,EAAKiB,EACLA,EAAK,IAELjB,EAAKjB,EACLkC,GAAMlC,GAGP0B,EAAKhB,EAAQwB,EAAGV,EAAG,CAAC,EAGpBpB,EAAMoB,EAAG,CAAC,EAAMP,EAAGO,EAAG,CAAC,EAGjBS,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IACtBzB,EAAKD,EAAMyB,EAAI3B,EAAI,CAAE,EACrB2B,GAAMvB,EAEPuB,GAAMtB,CACP,CACAsB,GAAMrB,CACP,CACAqB,GAAMpB,CACP,CACAoB,GAAMnB,CACP,CACAmB,GAAMlB,CACP,CACAkB,GAAMjB,CACP,CAQR,CAKAf,GAAO,QAAUG,KChRjB,IAAA6C,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwBA,IAAIC,GAAY,KACZC,GAAY,KAwEhB,SAASC,GAAkBC,EAAGC,EAAM,CACnC,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAyBJ,IApBAA,EAAInD,GAAWG,EAAE,MAAOA,EAAE,OAAQ,EAClCoB,EAAK4B,EAAE,GACPnB,EAAKmB,EAAE,GAGP9C,EAAQJ,GAAWE,EAAE,KAAM,EAG3B8B,EAAK9B,EAAE,OAGPG,EAAOH,EAAE,KAGTK,EAAMwB,EAAG,CAAC,EAGVzB,EAAMJ,EAAE,UAAU,CAAC,EAGb+C,EAAK3B,EAAG,CAAC,EAAG2B,EAAK,GAStB,IARKA,EAAK7C,GACT0B,EAAKmB,EACLA,EAAK,IAELnB,EAAK1B,EACL6C,GAAM7C,GAEPiB,EAAMW,EAAOiB,EAAGlB,EAAG,CAAC,EACdiB,EAAK1B,EAAG,CAAC,EAAG0B,EAAK,GAUtB,IATKA,EAAK5C,GACTyB,EAAKmB,EACLA,EAAK,IAELnB,EAAKzB,EACL4C,GAAM5C,GAEPU,EAAMiB,EAAG,CAAC,EAAMF,EAAGE,EAAG,CAAC,EACvBX,EAAMC,EAAQ2B,EAAGjB,EAAG,CAAC,EACfgB,EAAKzB,EAAG,CAAC,EAAGyB,EAAK,GAUtB,IATKA,EAAK3C,GACTwB,EAAKmB,EACLA,EAAK,IAELnB,EAAKxB,EACL2C,GAAM3C,GAEPS,EAAMkB,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBZ,EAAMC,EAAQ2B,EAAGhB,EAAG,CAAC,EACfe,EAAKxB,EAAG,CAAC,EAAGwB,EAAK,GAUtB,IATKA,EAAK1C,GACTuB,EAAKmB,EACLA,EAAK,IAELnB,EAAKvB,EACL0C,GAAM1C,GAEPQ,EAAMmB,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EACvBb,EAAMC,EAAQ2B,EAAGf,EAAG,CAAC,EACfc,EAAKvB,EAAG,CAAC,EAAGuB,EAAK,GAUtB,IATKA,EAAKzC,GACTsB,EAAKmB,EACLA,EAAK,IAELnB,EAAKtB,EACLyC,GAAMzC,GAEPO,EAAMoB,EAAG,CAAC,EAAML,EAAGK,EAAG,CAAC,EACvBd,EAAMC,EAAQ2B,EAAGd,EAAG,CAAC,EACfa,EAAKtB,EAAG,CAAC,EAAGsB,EAAK,GAUtB,IATKA,EAAKxC,GACTqB,EAAKmB,EACLA,EAAK,IAELnB,EAAKrB,EACLwC,GAAMxC,GAEPM,EAAMqB,EAAG,CAAC,EAAMN,EAAGM,EAAG,CAAC,EACvBf,EAAMC,EAAQ2B,EAAGb,EAAG,CAAC,EACfY,EAAKrB,EAAG,CAAC,EAAGqB,EAAK,GAUtB,IATKA,EAAKvC,GACToB,EAAKmB,EACLA,EAAK,IAELnB,EAAKpB,EACLuC,GAAMvC,GAEPK,EAAMsB,EAAG,CAAC,EAAMP,EAAGO,EAAG,CAAC,EACvBhB,EAAMC,EAAQ2B,EAAGZ,EAAG,CAAC,EACfW,EAAKpB,EAAG,CAAC,EAAGoB,EAAK,GAetB,IAdKA,EAAKtC,GACTmB,EAAKmB,EACLA,EAAK,IAELnB,EAAKnB,EACLsC,GAAMtC,GAGP6B,EAAKlB,EAAQ2B,EAAGX,EAAG,CAAC,EAGpBvB,EAAMuB,EAAG,CAAC,EAAMR,EAAGQ,EAAG,CAAC,EAGjBU,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IACtB5B,EAAKD,EAAM4B,EAAI9B,EAAI,CAAE,EACrB8B,GAAM1B,EAEP0B,GAAMzB,CACP,CACAyB,GAAMxB,CACP,CACAwB,GAAMvB,CACP,CACAuB,GAAMtB,CACP,CACAsB,GAAMrB,CACP,CACAqB,GAAMpB,CACP,CACAoB,GAAMnB,CACP,CAST,CAKAhB,GAAO,QAAUG,KCnSjB,IAAAkD,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwBA,IAAIC,GAAY,KACZC,GAAY,KA0EhB,SAASC,GAAkBC,EAAGC,EAAM,CACnC,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GAyBJ,IApBAA,GAAIxD,GAAWG,EAAE,MAAOA,EAAE,OAAQ,EAClCsB,EAAK+B,GAAE,GACPrB,EAAKqB,GAAE,GAGPnD,EAAQJ,GAAWE,EAAE,KAAM,EAG3BiC,EAAKjC,EAAE,OAGPG,EAAOH,EAAE,KAGTK,EAAM2B,EAAG,CAAC,EAGV5B,EAAMJ,EAAE,UAAU,CAAC,EAGboD,EAAK9B,EAAG,CAAC,EAAG8B,EAAK,GAStB,IARKA,EAAKlD,GACT6B,EAAKqB,EACLA,EAAK,IAELrB,EAAK7B,EACLkD,GAAMlD,GAEPmB,EAAMY,EAAOmB,EAAGpB,EAAG,CAAC,EACdmB,EAAK7B,EAAG,CAAC,EAAG6B,EAAK,GAUtB,IATKA,EAAKjD,GACT4B,EAAKqB,EACLA,EAAK,IAELrB,EAAK5B,EACLiD,GAAMjD,GAEPW,EAAMmB,EAAG,CAAC,EAAMF,EAAGE,EAAG,CAAC,EACvBZ,EAAMC,EAAQ8B,EAAGnB,EAAG,CAAC,EACfkB,EAAK5B,EAAG,CAAC,EAAG4B,EAAK,GAUtB,IATKA,EAAKhD,GACT2B,EAAKqB,EACLA,EAAK,IAELrB,EAAK3B,EACLgD,GAAMhD,GAEPU,EAAMoB,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBb,EAAMC,EAAQ8B,EAAGlB,EAAG,CAAC,EACfiB,EAAK3B,EAAG,CAAC,EAAG2B,EAAK,GAUtB,IATKA,EAAK/C,GACT0B,EAAKqB,EACLA,EAAK,IAELrB,EAAK1B,EACL+C,GAAM/C,GAEPS,EAAMqB,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EACvBd,EAAMC,EAAQ8B,EAAGjB,EAAG,CAAC,EACfgB,EAAK1B,EAAG,CAAC,EAAG0B,EAAK,GAUtB,IATKA,EAAK9C,GACTyB,EAAKqB,EACLA,EAAK,IAELrB,EAAKzB,EACL8C,GAAM9C,GAEPQ,EAAMsB,EAAG,CAAC,EAAML,EAAGK,EAAG,CAAC,EACvBf,EAAMC,EAAQ8B,EAAGhB,EAAG,CAAC,EACfe,EAAKzB,EAAG,CAAC,EAAGyB,EAAK,GAUtB,IATKA,EAAK7C,GACTwB,EAAKqB,EACLA,EAAK,IAELrB,EAAKxB,EACL6C,GAAM7C,GAEPO,EAAMuB,EAAG,CAAC,EAAMN,EAAGM,EAAG,CAAC,EACvBhB,EAAMC,EAAQ8B,EAAGf,EAAG,CAAC,EACfc,EAAKxB,EAAG,CAAC,EAAGwB,EAAK,GAUtB,IATKA,EAAK5C,GACTuB,EAAKqB,EACLA,EAAK,IAELrB,EAAKvB,EACL4C,GAAM5C,GAEPM,EAAMwB,EAAG,CAAC,EAAMP,EAAGO,EAAG,CAAC,EACvBjB,EAAMC,EAAQ8B,EAAGd,EAAG,CAAC,EACfa,EAAKvB,EAAG,CAAC,EAAGuB,EAAK,GAUtB,IATKA,EAAK3C,GACTsB,EAAKqB,EACLA,EAAK,IAELrB,EAAKtB,EACL2C,GAAM3C,GAEPK,EAAMyB,EAAG,CAAC,EAAMR,EAAGQ,EAAG,CAAC,EACvBlB,EAAMC,EAAQ8B,EAAGb,EAAG,CAAC,EACfY,EAAKtB,EAAG,CAAC,EAAGsB,EAAK,GAetB,IAdKA,EAAK1C,GACTqB,EAAKqB,EACLA,EAAK,IAELrB,EAAKrB,EACL0C,GAAM1C,GAGPgC,EAAKpB,EAAQ8B,EAAGZ,EAAG,CAAC,EAGpB1B,EAAM0B,EAAG,CAAC,EAAMT,EAAGS,EAAG,CAAC,EAGjBW,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IACtB/B,EAAKD,EAAM+B,EAAIjC,EAAI,CAAE,EACrBiC,GAAM7B,EAEP6B,GAAM5B,CACP,CACA4B,GAAM3B,CACP,CACA2B,GAAM1B,CACP,CACA0B,GAAMzB,CACP,CACAyB,GAAMxB,CACP,CACAwB,GAAMvB,CACP,CACAuB,GAAMtB,CACP,CACAsB,GAAMrB,CACP,CAUV,CAKAjB,GAAO,QAAUG,KCxTjB,IAAAuD,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwBA,IAAIC,GAAY,KACZC,GAAY,KAwEhB,SAASC,GAAmBC,EAAGC,EAAM,CACpC,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GAyBJ,IApBAA,GAAI7D,GAAWG,EAAE,MAAOA,EAAE,OAAQ,EAClCwB,EAAKkC,GAAE,GACPvB,EAAKuB,GAAE,GAGPxD,EAAQJ,GAAWE,EAAE,KAAM,EAG3BoC,EAAKpC,EAAE,OAGPG,EAAOH,EAAE,KAGTK,EAAM8B,EAAG,CAAC,EAGV/B,EAAMJ,EAAE,UAAU,CAAC,EAGbyD,GAAKjC,EAAG,CAAC,EAAGiC,GAAK,GAStB,IARKA,GAAKvD,GACTgC,EAAKuB,GACLA,GAAK,IAELvB,EAAKhC,EACLuD,IAAMvD,GAEPqB,EAAMa,EAAOqB,GAAGtB,EAAG,CAAC,EACdqB,GAAKhC,EAAG,CAAC,EAAGgC,GAAK,GAUtB,IATKA,GAAKtD,GACT+B,EAAKuB,GACLA,GAAK,IAELvB,EAAK/B,EACLsD,IAAMtD,GAEPY,EAAMqB,EAAG,CAAC,EAAMF,EAAGE,EAAG,CAAC,EACvBb,EAAMC,EAAQiC,GAAGrB,EAAG,CAAC,EACfoB,GAAK/B,EAAG,CAAC,EAAG+B,GAAK,GAUtB,IATKA,GAAKrD,GACT8B,EAAKuB,GACLA,GAAK,IAELvB,EAAK9B,EACLqD,IAAMrD,GAEPW,EAAMsB,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBd,EAAMC,EAAQiC,GAAGpB,EAAG,CAAC,EACfmB,GAAK9B,EAAG,CAAC,EAAG8B,GAAK,GAUtB,IATKA,GAAKpD,GACT6B,EAAKuB,GACLA,GAAK,IAELvB,EAAK7B,EACLoD,IAAMpD,GAEPU,EAAMuB,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EACvBf,EAAMC,EAAQiC,GAAGnB,EAAG,CAAC,EACfkB,GAAK7B,EAAG,CAAC,EAAG6B,GAAK,GAUtB,IATKA,GAAKnD,GACT4B,EAAKuB,GACLA,GAAK,IAELvB,EAAK5B,EACLmD,IAAMnD,GAEPS,EAAMwB,EAAG,CAAC,EAAML,EAAGK,EAAG,CAAC,EACvBhB,EAAMC,EAAQiC,GAAGlB,EAAG,CAAC,EACfiB,EAAK5B,EAAG,CAAC,EAAG4B,EAAK,GAUtB,IATKA,EAAKlD,GACT2B,EAAKuB,EACLA,EAAK,IAELvB,EAAK3B,EACLkD,GAAMlD,GAEPQ,EAAMyB,EAAG,CAAC,EAAMN,EAAGM,EAAG,CAAC,EACvBjB,EAAMC,EAAQiC,EAAGjB,EAAG,CAAC,EACfgB,EAAK3B,EAAG,CAAC,EAAG2B,EAAK,GAUtB,IATKA,EAAKjD,GACT0B,EAAKuB,EACLA,EAAK,IAELvB,EAAK1B,EACLiD,GAAMjD,GAEPO,EAAM0B,EAAG,CAAC,EAAMP,EAAGO,EAAG,CAAC,EACvBlB,EAAMC,EAAQiC,EAAGhB,EAAG,CAAC,EACfe,EAAK1B,EAAG,CAAC,EAAG0B,EAAK,GAUtB,IATKA,EAAKhD,GACTyB,EAAKuB,EACLA,EAAK,IAELvB,EAAKzB,EACLgD,GAAMhD,GAEPM,EAAM2B,EAAG,CAAC,EAAMR,EAAGQ,EAAG,CAAC,EACvBnB,EAAMC,EAAQiC,EAAGf,EAAG,CAAC,EACfc,EAAKzB,EAAG,CAAC,EAAGyB,EAAK,GAUtB,IATKA,EAAK/C,GACTwB,EAAKuB,EACLA,EAAK,IAELvB,EAAKxB,EACL+C,GAAM/C,GAEPK,EAAM4B,EAAG,CAAC,EAAMT,EAAGS,EAAG,CAAC,EACvBpB,EAAMC,EAAQiC,EAAGd,EAAG,CAAC,EACfa,EAAKxB,EAAG,CAAC,EAAGwB,EAAK,GAetB,IAdKA,EAAK9C,GACTuB,EAAKuB,EACLA,EAAK,IAELvB,EAAKvB,EACL8C,GAAM9C,GAGPmC,EAAKtB,EAAQiC,EAAGb,EAAG,CAAC,EAGpB7B,EAAM6B,EAAG,CAAC,EAAMV,EAAGU,EAAG,CAAC,EAGjBY,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IACtBlC,EAAKD,EAAMkC,EAAIpC,EAAI,CAAE,EACrBoC,GAAMhC,EAEPgC,GAAM/B,CACP,CACA+B,GAAM9B,CACP,CACA8B,GAAM7B,CACP,CACA6B,GAAM5B,CACP,CACA4B,GAAM3B,CACP,CACA2B,GAAM1B,CACP,CACA0B,GAAMzB,CACP,CACAyB,GAAMxB,CACP,CACAwB,GAAMvB,CACP,CAWX,CAKAlB,GAAO,QAAUG,KCzUjB,IAAA4D,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAsBA,IAAIC,GAAY,KACZC,GAAY,KAqDhB,SAASC,GAAkBC,EAAGC,EAAM,CACnC,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAsBJ,IAjBAA,EAAIpB,GAAWG,EAAE,MAAOA,EAAE,OAAQ,EAClCO,EAAKU,EAAE,GACPP,EAAKO,EAAE,GAGPf,EAAQJ,GAAWE,EAAE,KAAM,EAG3BW,EAAKX,EAAE,OAGPG,EAAOH,EAAE,KAGTI,EAAMM,EAAG,CAAC,EAGJM,EAAKT,EAAG,CAAC,EAAGS,EAAK,GAStB,IARKA,EAAKd,GACTO,EAAKO,EACLA,EAAK,IAELP,EAAKP,EACLc,GAAMd,GAEPI,EAAMK,EAAOK,EAAGN,EAAG,CAAC,EACdK,EAAKR,EAAG,CAAC,EAAGQ,EAAK,GAetB,IAdKA,EAAKb,GACTM,EAAKO,EACLA,EAAK,IAELP,EAAKN,EACLa,GAAMb,GAGPU,EAAKN,EAAQS,EAAGL,EAAG,CAAC,EAGpBL,EAAMK,EAAG,CAAC,EAAMF,EAAGE,EAAG,CAAC,EAGjBI,EAAK,EAAGA,EAAKL,EAAIK,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKL,EAAIK,IACtBV,EAAMS,CAAG,EAAIX,EAAI,EACjBW,GAAMR,EAEPQ,GAAMP,CACP,CAGH,CAKAT,GAAO,QAAUG,KCxJjB,IAAAmB,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwBA,IAAIC,GAAY,KACZC,GAAY,KAqDhB,SAASC,GAAkBC,EAAGC,EAAM,CACnC,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAsBJ,IAjBAA,EAAIzB,GAAWG,EAAE,MAAOA,EAAE,OAAQ,EAClCS,EAAKa,EAAE,GACPT,EAAKS,EAAE,GAGPpB,EAAQJ,GAAWE,EAAE,KAAM,EAG3Bc,EAAKd,EAAE,OAGPG,EAAOH,EAAE,KAGTI,EAAMS,EAAG,CAAC,EAGJQ,EAAKZ,EAAG,CAAC,EAAGY,EAAK,GAStB,IARKA,EAAKnB,GACTU,EAAKS,EACLA,EAAK,IAELT,EAAKV,EACLmB,GAAMnB,GAEPM,EAAMM,EAAOO,EAAGR,EAAG,CAAC,EACdO,EAAKX,EAAG,CAAC,EAAGW,EAAK,GAUtB,IATKA,EAAKlB,GACTS,EAAKS,EACLA,EAAK,IAELT,EAAKT,EACLkB,GAAMlB,GAEPI,EAAMO,EAAG,CAAC,EAAMF,EAAGE,EAAG,CAAC,EACvBN,EAAMC,EAAQY,EAAGP,EAAG,CAAC,EACfM,EAAKV,EAAG,CAAC,EAAGU,EAAK,GAetB,IAdKA,EAAKjB,GACTQ,EAAKS,EACLA,EAAK,IAELT,EAAKR,EACLiB,GAAMjB,GAGPa,EAAKR,EAAQY,EAAGN,EAAG,CAAC,EAGpBR,EAAMQ,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EAGjBK,EAAK,EAAGA,EAAKN,EAAIM,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKN,EAAIM,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKN,EAAIM,IACtBb,EAAMY,CAAG,EAAId,EAAI,EACjBc,GAAMX,EAEPW,GAAMV,CACP,CACAU,GAAMT,CACP,CAIJ,CAKAV,GAAO,QAAUG,KC7KjB,IAAAwB,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwBA,IAAIC,GAAY,KACZC,GAAY,KAqDhB,SAASC,GAAkBC,EAAGC,EAAM,CACnC,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAsBJ,IAjBAA,EAAI9B,GAAWG,EAAE,MAAOA,EAAE,OAAQ,EAClCW,EAAKgB,EAAE,GACPX,EAAKW,EAAE,GAGPzB,EAAQJ,GAAWE,EAAE,KAAM,EAG3BiB,EAAKjB,EAAE,OAGPG,EAAOH,EAAE,KAGTI,EAAMY,EAAG,CAAC,EAGJU,EAAKf,EAAG,CAAC,EAAGe,EAAK,GAStB,IARKA,EAAKxB,GACTa,EAAKW,EACLA,EAAK,IAELX,EAAKb,EACLwB,GAAMxB,GAEPQ,EAAMO,EAAOS,EAAGV,EAAG,CAAC,EACdS,EAAKd,EAAG,CAAC,EAAGc,EAAK,GAUtB,IATKA,EAAKvB,GACTY,EAAKW,EACLA,EAAK,IAELX,EAAKZ,EACLuB,GAAMvB,GAEPK,EAAMS,EAAG,CAAC,EAAMF,EAAGE,EAAG,CAAC,EACvBP,EAAMC,EAAQe,EAAGT,EAAG,CAAC,EACfQ,EAAKb,EAAG,CAAC,EAAGa,EAAK,GAUtB,IATKA,EAAKtB,GACTW,EAAKW,EACLA,EAAK,IAELX,EAAKX,EACLsB,GAAMtB,GAEPI,EAAMU,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBR,EAAMC,EAAQe,EAAGR,EAAG,CAAC,EACfO,EAAKZ,EAAG,CAAC,EAAGY,EAAK,GAetB,IAdKA,EAAKrB,GACTU,EAAKW,EACLA,EAAK,IAELX,EAAKV,EACLqB,GAAMrB,GAGPgB,EAAKV,EAAQe,EAAGP,EAAG,CAAC,EAGpBX,EAAMW,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EAGjBM,EAAK,EAAGA,EAAKP,EAAIO,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKP,EAAIO,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKP,EAAIO,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKP,EAAIO,IACtBhB,EAAMe,CAAG,EAAIjB,EAAI,EACjBiB,GAAMd,EAEPc,GAAMb,CACP,CACAa,GAAMZ,CACP,CACAY,GAAMX,CACP,CAKL,CAKAX,GAAO,QAAUG,KChMjB,IAAA6B,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwBA,IAAIC,GAAY,KACZC,GAAY,KAqDhB,SAASC,GAAkBC,EAAGC,EAAM,CACnC,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAsBJ,IAjBAA,EAAInC,GAAWG,EAAE,MAAOA,EAAE,OAAQ,EAClCa,EAAKmB,EAAE,GACPb,EAAKa,EAAE,GAGP9B,EAAQJ,GAAWE,EAAE,KAAM,EAG3BoB,EAAKpB,EAAE,OAGPG,EAAOH,EAAE,KAGTI,EAAMe,EAAG,CAAC,EAGJY,EAAKlB,EAAG,CAAC,EAAGkB,EAAK,GAStB,IARKA,EAAK7B,GACTgB,EAAKa,EACLA,EAAK,IAELb,EAAKhB,EACL6B,GAAM7B,GAEPU,EAAMQ,EAAOW,EAAGZ,EAAG,CAAC,EACdW,EAAKjB,EAAG,CAAC,EAAGiB,EAAK,GAUtB,IATKA,EAAK5B,GACTe,EAAKa,EACLA,EAAK,IAELb,EAAKf,EACL4B,GAAM5B,GAEPM,EAAMW,EAAG,CAAC,EAAMF,EAAGE,EAAG,CAAC,EACvBR,EAAMC,EAAQkB,EAAGX,EAAG,CAAC,EACfU,EAAKhB,EAAG,CAAC,EAAGgB,EAAK,GAUtB,IATKA,EAAK3B,GACTc,EAAKa,EACLA,EAAK,IAELb,EAAKd,EACL2B,GAAM3B,GAEPK,EAAMY,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBT,EAAMC,EAAQkB,EAAGV,EAAG,CAAC,EACfS,EAAKf,EAAG,CAAC,EAAGe,EAAK,GAUtB,IATKA,EAAK1B,GACTa,EAAKa,EACLA,EAAK,IAELb,EAAKb,EACL0B,GAAM1B,GAEPI,EAAMa,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EACvBV,EAAMC,EAAQkB,EAAGT,EAAG,CAAC,EACfQ,EAAKd,EAAG,CAAC,EAAGc,EAAK,GAetB,IAdKA,EAAKzB,GACTY,EAAKa,EACLA,EAAK,IAELb,EAAKZ,EACLyB,GAAMzB,GAGPmB,EAAKZ,EAAQkB,EAAGR,EAAG,CAAC,EAGpBd,EAAMc,EAAG,CAAC,EAAML,EAAGK,EAAG,CAAC,EAGjBO,EAAK,EAAGA,EAAKR,EAAIQ,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKR,EAAIQ,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKR,EAAIQ,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKR,EAAIQ,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKR,EAAIQ,IACtBnB,EAAMkB,CAAG,EAAIpB,EAAI,EACjBoB,GAAMjB,EAEPiB,GAAMhB,CACP,CACAgB,GAAMf,CACP,CACAe,GAAMd,CACP,CACAc,GAAMb,CACP,CAMN,CAKAZ,GAAO,QAAUG,KCnNjB,IAAAkC,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwBA,IAAIC,GAAY,KACZC,GAAY,KAqDhB,SAASC,GAAkBC,EAAGC,EAAM,CACnC,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAsBJ,IAjBAA,EAAIxC,GAAWG,EAAE,MAAOA,EAAE,OAAQ,EAClCe,EAAKsB,EAAE,GACPf,EAAKe,EAAE,GAGPnC,EAAQJ,GAAWE,EAAE,KAAM,EAG3BuB,EAAKvB,EAAE,OAGPG,EAAOH,EAAE,KAGTI,EAAMkB,EAAG,CAAC,EAGJc,EAAKrB,EAAG,CAAC,EAAGqB,EAAK,GAStB,IARKA,EAAKlC,GACTmB,EAAKe,EACLA,EAAK,IAELf,EAAKnB,EACLkC,GAAMlC,GAEPY,EAAMS,EAAOa,EAAGd,EAAG,CAAC,EACda,EAAKpB,EAAG,CAAC,EAAGoB,EAAK,GAUtB,IATKA,EAAKjC,GACTkB,EAAKe,EACLA,EAAK,IAELf,EAAKlB,EACLiC,GAAMjC,GAEPO,EAAMa,EAAG,CAAC,EAAMF,EAAGE,EAAG,CAAC,EACvBT,EAAMC,EAAQqB,EAAGb,EAAG,CAAC,EACfY,EAAKnB,EAAG,CAAC,EAAGmB,EAAK,GAUtB,IATKA,EAAKhC,GACTiB,EAAKe,EACLA,EAAK,IAELf,EAAKjB,EACLgC,GAAMhC,GAEPM,EAAMc,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBV,EAAMC,EAAQqB,EAAGZ,EAAG,CAAC,EACfW,EAAKlB,EAAG,CAAC,EAAGkB,EAAK,GAUtB,IATKA,EAAK/B,GACTgB,EAAKe,EACLA,EAAK,IAELf,EAAKhB,EACL+B,GAAM/B,GAEPK,EAAMe,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EACvBX,EAAMC,EAAQqB,EAAGX,EAAG,CAAC,EACfU,EAAKjB,EAAG,CAAC,EAAGiB,EAAK,GAUtB,IATKA,EAAK9B,GACTe,EAAKe,EACLA,EAAK,IAELf,EAAKf,EACL8B,GAAM9B,GAEPI,EAAMgB,EAAG,CAAC,EAAML,EAAGK,EAAG,CAAC,EACvBZ,EAAMC,EAAQqB,EAAGV,EAAG,CAAC,EACfS,EAAKhB,EAAG,CAAC,EAAGgB,EAAK,GAetB,IAdKA,EAAK7B,GACTc,EAAKe,EACLA,EAAK,IAELf,EAAKd,EACL6B,GAAM7B,GAGPsB,EAAKd,EAAQqB,EAAGT,EAAG,CAAC,EAGpBjB,EAAMiB,EAAG,CAAC,EAAMN,EAAGM,EAAG,CAAC,EAGjBQ,EAAK,EAAGA,EAAKT,EAAIS,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKT,EAAIS,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKT,EAAIS,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKT,EAAIS,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKT,EAAIS,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKT,EAAIS,IACtBtB,EAAMqB,CAAG,EAAIvB,EAAI,EACjBuB,GAAMpB,EAEPoB,GAAMnB,CACP,CACAmB,GAAMlB,CACP,CACAkB,GAAMjB,CACP,CACAiB,GAAMhB,CACP,CACAgB,GAAMf,CACP,CAOP,CAKAb,GAAO,QAAUG,KCtOjB,IAAAuC,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwBA,IAAIC,GAAY,KACZC,GAAY,KAqDhB,SAASC,GAAkBC,EAAGC,EAAM,CACnC,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAsBJ,IAjBAA,EAAI7C,GAAWG,EAAE,MAAOA,EAAE,OAAQ,EAClCiB,EAAKyB,EAAE,GACPjB,EAAKiB,EAAE,GAGPxC,EAAQJ,GAAWE,EAAE,KAAM,EAG3B0B,EAAK1B,EAAE,OAGPG,EAAOH,EAAE,KAGTI,EAAMqB,EAAG,CAAC,EAGJgB,EAAKxB,EAAG,CAAC,EAAGwB,EAAK,GAStB,IARKA,EAAKvC,GACTsB,EAAKiB,EACLA,EAAK,IAELjB,EAAKtB,EACLuC,GAAMvC,GAEPc,EAAMU,EAAOe,EAAGhB,EAAG,CAAC,EACde,EAAKvB,EAAG,CAAC,EAAGuB,EAAK,GAUtB,IATKA,EAAKtC,GACTqB,EAAKiB,EACLA,EAAK,IAELjB,EAAKrB,EACLsC,GAAMtC,GAEPQ,EAAMe,EAAG,CAAC,EAAMF,EAAGE,EAAG,CAAC,EACvBV,EAAMC,EAAQwB,EAAGf,EAAG,CAAC,EACfc,EAAKtB,EAAG,CAAC,EAAGsB,EAAK,GAUtB,IATKA,EAAKrC,GACToB,EAAKiB,EACLA,EAAK,IAELjB,EAAKpB,EACLqC,GAAMrC,GAEPO,EAAMgB,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBX,EAAMC,EAAQwB,EAAGd,EAAG,CAAC,EACfa,EAAKrB,EAAG,CAAC,EAAGqB,EAAK,GAUtB,IATKA,EAAKpC,GACTmB,EAAKiB,EACLA,EAAK,IAELjB,EAAKnB,EACLoC,GAAMpC,GAEPM,EAAMiB,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EACvBZ,EAAMC,EAAQwB,EAAGb,EAAG,CAAC,EACfY,EAAKpB,EAAG,CAAC,EAAGoB,EAAK,GAUtB,IATKA,EAAKnC,GACTkB,EAAKiB,EACLA,EAAK,IAELjB,EAAKlB,EACLmC,GAAMnC,GAEPK,EAAMkB,EAAG,CAAC,EAAML,EAAGK,EAAG,CAAC,EACvBb,EAAMC,EAAQwB,EAAGZ,EAAG,CAAC,EACfW,EAAKnB,EAAG,CAAC,EAAGmB,EAAK,GAUtB,IATKA,EAAKlC,GACTiB,EAAKiB,EACLA,EAAK,IAELjB,EAAKjB,EACLkC,GAAMlC,GAEPI,EAAMmB,EAAG,CAAC,EAAMN,EAAGM,EAAG,CAAC,EACvBd,EAAMC,EAAQwB,EAAGX,EAAG,CAAC,EACfU,EAAKlB,EAAG,CAAC,EAAGkB,EAAK,GAetB,IAdKA,EAAKjC,GACTgB,EAAKiB,EACLA,EAAK,IAELjB,EAAKhB,EACLiC,GAAMjC,GAGPyB,EAAKhB,EAAQwB,EAAGV,EAAG,CAAC,EAGpBpB,EAAMoB,EAAG,CAAC,EAAMP,EAAGO,EAAG,CAAC,EAGjBS,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IACtBzB,EAAMwB,CAAG,EAAI1B,EAAI,EACjB0B,GAAMvB,EAEPuB,GAAMtB,CACP,CACAsB,GAAMrB,CACP,CACAqB,GAAMpB,CACP,CACAoB,GAAMnB,CACP,CACAmB,GAAMlB,CACP,CACAkB,GAAMjB,CACP,CAQR,CAKAd,GAAO,QAAUG,KCzPjB,IAAA4C,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwBA,IAAIC,GAAY,KACZC,GAAY,KAqDhB,SAASC,GAAkBC,EAAGC,EAAM,CACnC,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAsBJ,IAjBAA,EAAIlD,GAAWG,EAAE,MAAOA,EAAE,OAAQ,EAClCmB,EAAK4B,EAAE,GACPnB,EAAKmB,EAAE,GAGP7C,EAAQJ,GAAWE,EAAE,KAAM,EAG3B6B,EAAK7B,EAAE,OAGPG,EAAOH,EAAE,KAGTI,EAAMwB,EAAG,CAAC,EAGJkB,EAAK3B,EAAG,CAAC,EAAG2B,EAAK,GAStB,IARKA,EAAK5C,GACTyB,EAAKmB,EACLA,EAAK,IAELnB,EAAKzB,EACL4C,GAAM5C,GAEPgB,EAAMW,EAAOiB,EAAGlB,EAAG,CAAC,EACdiB,EAAK1B,EAAG,CAAC,EAAG0B,EAAK,GAUtB,IATKA,EAAK3C,GACTwB,EAAKmB,EACLA,EAAK,IAELnB,EAAKxB,EACL2C,GAAM3C,GAEPS,EAAMiB,EAAG,CAAC,EAAMF,EAAGE,EAAG,CAAC,EACvBX,EAAMC,EAAQ2B,EAAGjB,EAAG,CAAC,EACfgB,EAAKzB,EAAG,CAAC,EAAGyB,EAAK,GAUtB,IATKA,EAAK1C,GACTuB,EAAKmB,EACLA,EAAK,IAELnB,EAAKvB,EACL0C,GAAM1C,GAEPQ,EAAMkB,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBZ,EAAMC,EAAQ2B,EAAGhB,EAAG,CAAC,EACfe,EAAKxB,EAAG,CAAC,EAAGwB,EAAK,GAUtB,IATKA,EAAKzC,GACTsB,EAAKmB,EACLA,EAAK,IAELnB,EAAKtB,EACLyC,GAAMzC,GAEPO,EAAMmB,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EACvBb,EAAMC,EAAQ2B,EAAGf,EAAG,CAAC,EACfc,EAAKvB,EAAG,CAAC,EAAGuB,EAAK,GAUtB,IATKA,EAAKxC,GACTqB,EAAKmB,EACLA,EAAK,IAELnB,EAAKrB,EACLwC,GAAMxC,GAEPM,EAAMoB,EAAG,CAAC,EAAML,EAAGK,EAAG,CAAC,EACvBd,EAAMC,EAAQ2B,EAAGd,EAAG,CAAC,EACfa,EAAKtB,EAAG,CAAC,EAAGsB,EAAK,GAUtB,IATKA,EAAKvC,GACToB,EAAKmB,EACLA,EAAK,IAELnB,EAAKpB,EACLuC,GAAMvC,GAEPK,EAAMqB,EAAG,CAAC,EAAMN,EAAGM,EAAG,CAAC,EACvBf,EAAMC,EAAQ2B,EAAGb,EAAG,CAAC,EACfY,EAAKrB,EAAG,CAAC,EAAGqB,EAAK,GAUtB,IATKA,EAAKtC,GACTmB,EAAKmB,EACLA,EAAK,IAELnB,EAAKnB,EACLsC,GAAMtC,GAEPI,EAAMsB,EAAG,CAAC,EAAMP,EAAGO,EAAG,CAAC,EACvBhB,EAAMC,EAAQ2B,EAAGZ,EAAG,CAAC,EACfW,EAAKpB,EAAG,CAAC,EAAGoB,EAAK,GAetB,IAdKA,EAAKrC,GACTkB,EAAKmB,EACLA,EAAK,IAELnB,EAAKlB,EACLqC,GAAMrC,GAGP4B,EAAKlB,EAAQ2B,EAAGX,EAAG,CAAC,EAGpBvB,EAAMuB,EAAG,CAAC,EAAMR,EAAGQ,EAAG,CAAC,EAGjBU,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IACtB5B,EAAM2B,CAAG,EAAI7B,EAAI,EACjB6B,GAAM1B,EAEP0B,GAAMzB,CACP,CACAyB,GAAMxB,CACP,CACAwB,GAAMvB,CACP,CACAuB,GAAMtB,CACP,CACAsB,GAAMrB,CACP,CACAqB,GAAMpB,CACP,CACAoB,GAAMnB,CACP,CAST,CAKAf,GAAO,QAAUG,KC5QjB,IAAAiD,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwBA,IAAIC,GAAY,KACZC,GAAY,KAqDhB,SAASC,GAAkBC,EAAGC,EAAM,CACnC,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAsBJ,IAjBAA,EAAIvD,GAAWG,EAAE,MAAOA,EAAE,OAAQ,EAClCqB,EAAK+B,EAAE,GACPrB,EAAKqB,EAAE,GAGPlD,EAAQJ,GAAWE,EAAE,KAAM,EAG3BgC,EAAKhC,EAAE,OAGPG,EAAOH,EAAE,KAGTI,EAAM2B,EAAG,CAAC,EAGJoB,EAAK9B,EAAG,CAAC,EAAG8B,EAAK,GAStB,IARKA,EAAKjD,GACT4B,EAAKqB,EACLA,EAAK,IAELrB,EAAK5B,EACLiD,GAAMjD,GAEPkB,EAAMY,EAAOmB,EAAGpB,EAAG,CAAC,EACdmB,EAAK7B,EAAG,CAAC,EAAG6B,EAAK,GAUtB,IATKA,EAAKhD,GACT2B,EAAKqB,EACLA,EAAK,IAELrB,EAAK3B,EACLgD,GAAMhD,GAEPU,EAAMmB,EAAG,CAAC,EAAMF,EAAGE,EAAG,CAAC,EACvBZ,EAAMC,EAAQ8B,EAAGnB,EAAG,CAAC,EACfkB,EAAK5B,EAAG,CAAC,EAAG4B,EAAK,GAUtB,IATKA,EAAK/C,GACT0B,EAAKqB,EACLA,EAAK,IAELrB,EAAK1B,EACL+C,GAAM/C,GAEPS,EAAMoB,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBb,EAAMC,EAAQ8B,EAAGlB,EAAG,CAAC,EACfiB,EAAK3B,EAAG,CAAC,EAAG2B,EAAK,GAUtB,IATKA,EAAK9C,GACTyB,EAAKqB,EACLA,EAAK,IAELrB,EAAKzB,EACL8C,GAAM9C,GAEPQ,EAAMqB,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EACvBd,EAAMC,EAAQ8B,EAAGjB,EAAG,CAAC,EACfgB,EAAK1B,EAAG,CAAC,EAAG0B,EAAK,GAUtB,IATKA,EAAK7C,GACTwB,EAAKqB,EACLA,EAAK,IAELrB,EAAKxB,EACL6C,GAAM7C,GAEPO,EAAMsB,EAAG,CAAC,EAAML,EAAGK,EAAG,CAAC,EACvBf,EAAMC,EAAQ8B,EAAGhB,EAAG,CAAC,EACfe,EAAKzB,EAAG,CAAC,EAAGyB,EAAK,GAUtB,IATKA,EAAK5C,GACTuB,EAAKqB,EACLA,EAAK,IAELrB,EAAKvB,EACL4C,GAAM5C,GAEPM,EAAMuB,EAAG,CAAC,EAAMN,EAAGM,EAAG,CAAC,EACvBhB,EAAMC,EAAQ8B,EAAGf,EAAG,CAAC,EACfc,EAAKxB,EAAG,CAAC,EAAGwB,EAAK,GAUtB,IATKA,EAAK3C,GACTsB,EAAKqB,EACLA,EAAK,IAELrB,EAAKtB,EACL2C,GAAM3C,GAEPK,EAAMwB,EAAG,CAAC,EAAMP,EAAGO,EAAG,CAAC,EACvBjB,EAAMC,EAAQ8B,EAAGd,EAAG,CAAC,EACfa,EAAKvB,EAAG,CAAC,EAAGuB,EAAK,GAUtB,IATKA,EAAK1C,GACTqB,EAAKqB,EACLA,EAAK,IAELrB,EAAKrB,EACL0C,GAAM1C,GAEPI,EAAMyB,EAAG,CAAC,EAAMR,EAAGQ,EAAG,CAAC,EACvBlB,EAAMC,EAAQ8B,EAAGb,EAAG,CAAC,EACfY,EAAKtB,EAAG,CAAC,EAAGsB,EAAK,GAetB,IAdKA,EAAKzC,GACToB,EAAKqB,EACLA,EAAK,IAELrB,EAAKpB,EACLyC,GAAMzC,GAGP+B,EAAKpB,EAAQ8B,EAAGZ,EAAG,CAAC,EAGpB1B,EAAM0B,EAAG,CAAC,EAAMT,EAAGS,EAAG,CAAC,EAGjBW,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IACtB/B,EAAM8B,CAAG,EAAIhC,EAAI,EACjBgC,GAAM7B,EAEP6B,GAAM5B,CACP,CACA4B,GAAM3B,CACP,CACA2B,GAAM1B,CACP,CACA0B,GAAMzB,CACP,CACAyB,GAAMxB,CACP,CACAwB,GAAMvB,CACP,CACAuB,GAAMtB,CACP,CACAsB,GAAMrB,CACP,CAUV,CAKAhB,GAAO,QAAUG,KC/RjB,IAAAsD,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwBA,IAAIC,GAAY,KACZC,GAAY,KAqDhB,SAASC,GAAmBC,EAAGC,EAAM,CACpC,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GACAC,GACAC,GACAC,GACAC,GAsBJ,IAjBAA,GAAI5D,GAAWG,EAAE,MAAOA,EAAE,OAAQ,EAClCuB,EAAKkC,GAAE,GACPvB,EAAKuB,GAAE,GAGPvD,EAAQJ,GAAWE,EAAE,KAAM,EAG3BmC,EAAKnC,EAAE,OAGPG,EAAOH,EAAE,KAGTI,EAAM8B,EAAG,CAAC,EAGJsB,GAAKjC,EAAG,CAAC,EAAGiC,GAAK,GAStB,IARKA,GAAKtD,GACT+B,EAAKuB,GACLA,GAAK,IAELvB,EAAK/B,EACLsD,IAAMtD,GAEPoB,EAAMa,EAAOqB,GAAGtB,EAAG,CAAC,EACdqB,GAAKhC,EAAG,CAAC,EAAGgC,GAAK,GAUtB,IATKA,GAAKrD,GACT8B,EAAKuB,GACLA,GAAK,IAELvB,EAAK9B,EACLqD,IAAMrD,GAEPW,EAAMqB,EAAG,CAAC,EAAMF,EAAGE,EAAG,CAAC,EACvBb,EAAMC,EAAQiC,GAAGrB,EAAG,CAAC,EACfoB,GAAK/B,EAAG,CAAC,EAAG+B,GAAK,GAUtB,IATKA,GAAKpD,GACT6B,EAAKuB,GACLA,GAAK,IAELvB,EAAK7B,EACLoD,IAAMpD,GAEPU,EAAMsB,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBd,EAAMC,EAAQiC,GAAGpB,EAAG,CAAC,EACfmB,GAAK9B,EAAG,CAAC,EAAG8B,GAAK,GAUtB,IATKA,GAAKnD,GACT4B,EAAKuB,GACLA,GAAK,IAELvB,EAAK5B,EACLmD,IAAMnD,GAEPS,EAAMuB,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EACvBf,EAAMC,EAAQiC,GAAGnB,EAAG,CAAC,EACfkB,EAAK7B,EAAG,CAAC,EAAG6B,EAAK,GAUtB,IATKA,EAAKlD,GACT2B,EAAKuB,EACLA,EAAK,IAELvB,EAAK3B,EACLkD,GAAMlD,GAEPQ,EAAMwB,EAAG,CAAC,EAAML,EAAGK,EAAG,CAAC,EACvBhB,EAAMC,EAAQiC,EAAGlB,EAAG,CAAC,EACfiB,EAAK5B,EAAG,CAAC,EAAG4B,EAAK,GAUtB,IATKA,EAAKjD,GACT0B,EAAKuB,EACLA,EAAK,IAELvB,EAAK1B,EACLiD,GAAMjD,GAEPO,EAAMyB,EAAG,CAAC,EAAMN,EAAGM,EAAG,CAAC,EACvBjB,EAAMC,EAAQiC,EAAGjB,EAAG,CAAC,EACfgB,EAAK3B,EAAG,CAAC,EAAG2B,EAAK,GAUtB,IATKA,EAAKhD,GACTyB,EAAKuB,EACLA,EAAK,IAELvB,EAAKzB,EACLgD,GAAMhD,GAEPM,EAAM0B,EAAG,CAAC,EAAMP,EAAGO,EAAG,CAAC,EACvBlB,EAAMC,EAAQiC,EAAGhB,EAAG,CAAC,EACfe,EAAK1B,EAAG,CAAC,EAAG0B,EAAK,GAUtB,IATKA,EAAK/C,GACTwB,EAAKuB,EACLA,EAAK,IAELvB,EAAKxB,EACL+C,GAAM/C,GAEPK,EAAM2B,EAAG,CAAC,EAAMR,EAAGQ,EAAG,CAAC,EACvBnB,EAAMC,EAAQiC,EAAGf,EAAG,CAAC,EACfc,EAAKzB,EAAG,CAAC,EAAGyB,EAAK,GAUtB,IATKA,EAAK9C,GACTuB,EAAKuB,EACLA,EAAK,IAELvB,EAAKvB,EACL8C,GAAM9C,GAEPI,EAAM4B,EAAG,CAAC,EAAMT,EAAGS,EAAG,CAAC,EACvBpB,EAAMC,EAAQiC,EAAGd,EAAG,CAAC,EACfa,EAAKxB,EAAG,CAAC,EAAGwB,EAAK,GAetB,IAdKA,EAAK7C,GACTsB,EAAKuB,EACLA,EAAK,IAELvB,EAAKtB,EACL6C,GAAM7C,GAGPkC,EAAKtB,EAAQiC,EAAGb,EAAG,CAAC,EAGpB7B,EAAM6B,EAAG,CAAC,EAAMV,EAAGU,EAAG,CAAC,EAGjBY,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IACtBlC,EAAMiC,CAAG,EAAInC,EAAI,EACjBmC,GAAMhC,EAEPgC,GAAM/B,CACP,CACA+B,GAAM9B,CACP,CACA8B,GAAM7B,CACP,CACA6B,GAAM5B,CACP,CACA4B,GAAM3B,CACP,CACA2B,GAAM1B,CACP,CACA0B,GAAMzB,CACP,CACAyB,GAAMxB,CACP,CACAwB,GAAMvB,CACP,CAWX,CAKAjB,GAAO,QAAUG,KClTjB,IAAA2D,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cA0FA,SAASC,GAAWC,EAAGC,EAAM,CAC5BD,EAAE,UAAW,CAAE,EAAGA,EAAE,KAAMA,EAAE,OAAQC,EAAI,CAAE,CAC3C,CAKAH,GAAO,QAAUC,KCjGjB,IAAAG,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cA0FA,SAASC,GAAWC,EAAGC,EAAM,CAC5B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EAkBJ,IAbAF,EAAKL,EAAE,MAAO,CAAE,EAChBI,EAAMJ,EAAE,QAAS,CAAE,EAGnBM,EAAKN,EAAE,OAGPE,EAAOF,EAAE,KAGTG,EAAMH,EAAE,UAAW,CAAE,EAGfO,EAAK,EAAGA,EAAKF,EAAIE,IACtBJ,EAAKD,EAAMI,EAAIL,EAAI,CAAE,EACrBK,GAAMF,CAER,CAKAN,GAAO,QAAUC,KC3HjB,IAAAS,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cA0FA,SAASC,GAAWC,EAAGC,EAAM,CAC5B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EA8BJ,IAzBAN,EAAKN,EAAE,MACPS,EAAKT,EAAE,QACFA,EAAE,QAAU,aAEhBO,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXF,EAAMK,EAAI,CAAE,EACZJ,EAAMI,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,IAGzBF,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXF,EAAMK,EAAI,CAAE,EACZJ,EAAMI,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,GAG1BC,EAAKV,EAAE,OAGPE,EAAOF,EAAE,KAGTG,EAAMH,EAAE,UAAW,CAAE,EAGfY,EAAK,EAAGA,EAAKJ,EAAII,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKJ,EAAII,IACtBR,EAAKD,EAAMQ,EAAIT,EAAI,CAAE,EACrBS,GAAMN,EAEPM,GAAML,CACP,CACD,CAKAP,GAAO,QAAUC,KC/IjB,IAAAc,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cA0FA,SAASC,GAAWC,EAAGC,EAAM,CAC5B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAkCJ,IA7BAR,EAAKP,EAAE,MACPW,EAAKX,EAAE,QACFA,EAAE,QAAU,aAEhBQ,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXH,EAAMO,EAAI,CAAE,EACZN,EAAMM,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBL,EAAMK,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,IAGzBH,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXH,EAAMO,EAAI,CAAE,EACZN,EAAMM,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBL,EAAMK,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,GAG1BC,EAAKZ,EAAE,OAGPE,EAAOF,EAAE,KAGTG,EAAMH,EAAE,UAAW,CAAE,EAGfe,EAAK,EAAGA,EAAKL,EAAIK,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKL,EAAIK,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKL,EAAIK,IACtBV,EAAKD,EAAMU,EAAIX,EAAI,CAAE,EACrBW,GAAMR,EAEPQ,GAAMP,CACP,CACAO,GAAMN,CACP,CACD,CAKAR,GAAO,QAAUC,KCzJjB,IAAAiB,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cA0FA,SAASC,GAAWC,EAAGC,EAAM,CAC5B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAsCJ,IAjCAV,EAAKR,EAAE,MACPa,EAAKb,EAAE,QACFA,EAAE,QAAU,aAEhBS,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXJ,EAAMS,EAAI,CAAE,EACZR,EAAMQ,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBP,EAAMO,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBN,EAAMM,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,IAGzBJ,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXJ,EAAMS,EAAI,CAAE,EACZR,EAAMQ,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBP,EAAMO,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBN,EAAMM,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,GAG1BC,EAAKd,EAAE,OAGPE,EAAOF,EAAE,KAGTG,EAAMH,EAAE,UAAW,CAAE,EAGfkB,EAAK,EAAGA,EAAKN,EAAIM,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKN,EAAIM,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKN,EAAIM,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKN,EAAIM,IACtBZ,EAAKD,EAAMY,EAAIb,EAAI,CAAE,EACrBa,GAAMV,EAEPU,GAAMT,CACP,CACAS,GAAMR,CACP,CACAQ,GAAMP,CACP,CACD,CAKAT,GAAO,QAAUC,KCnKjB,IAAAoB,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cA0FA,SAASC,GAAWC,EAAGC,EAAM,CAC5B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EA0CJ,IArCAZ,EAAKT,EAAE,MACPe,EAAKf,EAAE,QACFA,EAAE,QAAU,aAEhBU,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXL,EAAMW,EAAI,CAAE,EACZV,EAAMU,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBT,EAAMS,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBR,EAAMQ,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBP,EAAMO,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,IAGzBL,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXL,EAAMW,EAAI,CAAE,EACZV,EAAMU,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBT,EAAMS,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBR,EAAMQ,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBP,EAAMO,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,GAG1BC,EAAKhB,EAAE,OAGPE,EAAOF,EAAE,KAGTG,EAAMH,EAAE,UAAW,CAAE,EAGfqB,EAAK,EAAGA,EAAKP,EAAIO,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKP,EAAIO,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKP,EAAIO,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKP,EAAIO,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKP,EAAIO,IACtBd,EAAKD,EAAMc,EAAIf,EAAI,CAAE,EACrBe,GAAMZ,EAEPY,GAAMX,CACP,CACAW,GAAMV,CACP,CACAU,GAAMT,CACP,CACAS,GAAMR,CACP,CACD,CAKAV,GAAO,QAAUC,KC7KjB,IAAAuB,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cA4FA,SAASC,GAAWC,EAAGC,EAAM,CAC5B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EA8CJ,IAzCAd,EAAKV,EAAE,MACPiB,EAAKjB,EAAE,QACFA,EAAE,QAAU,aAEhBW,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXN,EAAMa,EAAI,CAAE,EACZZ,EAAMY,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBV,EAAMU,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBT,EAAMS,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBR,EAAMQ,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,IAGzBN,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXN,EAAMa,EAAI,CAAE,EACZZ,EAAMY,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBV,EAAMU,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBT,EAAMS,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBR,EAAMQ,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,GAG1BC,EAAKlB,EAAE,OAGPE,EAAOF,EAAE,KAGTG,EAAMH,EAAE,UAAW,CAAE,EAGfwB,EAAK,EAAGA,EAAKR,EAAIQ,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKR,EAAIQ,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKR,EAAIQ,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKR,EAAIQ,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKR,EAAIQ,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKR,EAAIQ,IACtBhB,EAAKD,EAAMgB,EAAIjB,EAAI,CAAE,EACrBiB,GAAMd,EAEPc,GAAMb,CACP,CACAa,GAAMZ,CACP,CACAY,GAAMX,CACP,CACAW,GAAMV,CACP,CACAU,GAAMT,CACP,CACD,CAKAX,GAAO,QAAUC,KCzLjB,IAAA0B,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cA4FA,SAASC,GAAWC,EAAGC,EAAM,CAC5B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAkDJ,IA7CAhB,EAAKX,EAAE,MACPmB,EAAKnB,EAAE,QACFA,EAAE,QAAU,aAEhBY,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXP,EAAMe,EAAI,CAAE,EACZd,EAAMc,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBV,EAAMU,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBT,EAAMS,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,IAGzBP,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXP,EAAMe,EAAI,CAAE,EACZd,EAAMc,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBV,EAAMU,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBT,EAAMS,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,GAG1BC,EAAKpB,EAAE,OAGPE,EAAOF,EAAE,KAGTG,EAAMH,EAAE,UAAW,CAAE,EAGf2B,EAAK,EAAGA,EAAKT,EAAIS,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKT,EAAIS,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKT,EAAIS,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKT,EAAIS,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKT,EAAIS,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKT,EAAIS,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKT,EAAIS,IACtBlB,EAAKD,EAAMkB,EAAInB,EAAI,CAAE,EACrBmB,GAAMhB,EAEPgB,GAAMf,CACP,CACAe,GAAMd,CACP,CACAc,GAAMb,CACP,CACAa,GAAMZ,CACP,CACAY,GAAMX,CACP,CACAW,GAAMV,CACP,CACD,CAKAZ,GAAO,QAAUC,KCnMjB,IAAA6B,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cA4FA,SAASC,GAAWC,EAAGC,EAAM,CAC5B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAsDJ,IAjDAlB,EAAKZ,EAAE,MACPqB,EAAKrB,EAAE,QACFA,EAAE,QAAU,aAEhBa,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXQ,EAAKR,EAAI,CAAE,EACXR,EAAMiB,EAAI,CAAE,EACZhB,EAAMgB,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBf,EAAMe,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBV,EAAMU,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,IAGzBR,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXQ,EAAKR,EAAI,CAAE,EACXR,EAAMiB,EAAI,CAAE,EACZhB,EAAMgB,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBf,EAAMe,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBV,EAAMU,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,GAG1BC,EAAKtB,EAAE,OAGPE,EAAOF,EAAE,KAGTG,EAAMH,EAAE,UAAW,CAAE,EAGf8B,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IACtBpB,EAAKD,EAAMoB,EAAIrB,EAAI,CAAE,EACrBqB,GAAMlB,EAEPkB,GAAMjB,CACP,CACAiB,GAAMhB,CACP,CACAgB,GAAMf,CACP,CACAe,GAAMd,CACP,CACAc,GAAMb,CACP,CACAa,GAAMZ,CACP,CACAY,GAAMX,CACP,CACD,CAKAb,GAAO,QAAUC,KC7MjB,IAAAgC,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cA4FA,SAASC,GAAWC,EAAGC,EAAM,CAC5B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EA0DJ,IArDApB,EAAKb,EAAE,MACPuB,EAAKvB,EAAE,QACFA,EAAE,QAAU,aAEhBc,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXQ,EAAKR,EAAI,CAAE,EACXS,EAAKT,EAAI,CAAE,EACXT,EAAMmB,EAAI,CAAE,EACZlB,EAAMkB,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzBjB,EAAMiB,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBf,EAAMe,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,IAGzBT,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXQ,EAAKR,EAAI,CAAE,EACXS,EAAKT,EAAI,CAAE,EACXT,EAAMmB,EAAI,CAAE,EACZlB,EAAMkB,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzBjB,EAAMiB,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBf,EAAMe,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,GAG1BC,EAAKxB,EAAE,OAGPE,EAAOF,EAAE,KAGTG,EAAMH,EAAE,UAAW,CAAE,EAGfiC,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IACtBtB,EAAKD,EAAMsB,EAAIvB,EAAI,CAAE,EACrBuB,GAAMpB,EAEPoB,GAAMnB,CACP,CACAmB,GAAMlB,CACP,CACAkB,GAAMjB,CACP,CACAiB,GAAMhB,CACP,CACAgB,GAAMf,CACP,CACAe,GAAMd,CACP,CACAc,GAAMb,CACP,CACAa,GAAMZ,CACP,CACD,CAKAd,GAAO,QAAUC,KCvNjB,IAAAmC,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cA4FA,SAASC,GAAYC,EAAGC,EAAM,CAC7B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EA8DJ,IAzDAtB,EAAKd,EAAE,MACPyB,EAAKzB,EAAE,QACFA,EAAE,QAAU,aAEhBe,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXQ,EAAKR,EAAI,CAAE,EACXS,EAAKT,EAAI,CAAE,EACXU,EAAKV,EAAI,CAAE,EACXV,EAAMqB,EAAI,CAAE,EACZpB,EAAMoB,EAAI,CAAE,EAAMV,EAAGU,EAAG,CAAC,EACzBnB,EAAMmB,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzBlB,EAAMkB,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBjB,EAAMiB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBf,EAAMe,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,IAGzBV,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXQ,EAAKR,EAAI,CAAE,EACXS,EAAKT,EAAI,CAAE,EACXU,EAAKV,EAAI,CAAE,EACXV,EAAMqB,EAAI,CAAE,EACZpB,EAAMoB,EAAI,CAAE,EAAMV,EAAGU,EAAG,CAAC,EACzBnB,EAAMmB,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzBlB,EAAMkB,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBjB,EAAMiB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBf,EAAMe,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,GAG1BC,EAAK1B,EAAE,OAGPE,EAAOF,EAAE,KAGTG,EAAMH,EAAE,UAAW,CAAE,EAGfoC,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IACtBxB,EAAKD,EAAMwB,EAAIzB,EAAI,CAAE,EACrByB,GAAMtB,EAEPsB,GAAMrB,CACP,CACAqB,GAAMpB,CACP,CACAoB,GAAMnB,CACP,CACAmB,GAAMlB,CACP,CACAkB,GAAMjB,CACP,CACAiB,GAAMhB,CACP,CACAgB,GAAMf,CACP,CACAe,GAAMd,CACP,CACAc,GAAMb,CACP,CACD,CAKAf,GAAO,QAAUC,KCjOjB,IAAAsC,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAsBA,IAAIC,GAAQ,KACRC,GAAY,KAKZC,GAAO,QAyEX,SAASC,GAAWC,EAAGC,EAAM,CAC5B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAuBJ,IArBAJ,EAAKN,EAAE,MAGPI,EAAMR,GAAOU,CAAG,EAGhBJ,EAAOF,EAAE,KAGTO,EAAKP,EAAE,QAGPQ,EAAKR,EAAE,OAGPG,EAAOH,EAAE,MAGTK,EAAML,EAAE,UAAW,CAAE,EAGfU,EAAI,EAAGA,EAAIN,EAAKM,IACrBD,EAAKZ,GAAWS,EAAIC,EAAIC,EAAIL,EAAMO,EAAGZ,EAAK,EAC1CO,EAAKH,EAAMO,EAAIR,EAAI,CAAE,CAEvB,CAKAN,GAAO,QAAUI,KC9IjB,IAAAY,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAuEA,SAASC,GAAWC,EAAGC,EAAM,CAC5BD,EAAE,KAAMA,EAAE,MAAO,EAAIC,EAAI,CAC1B,CAKAH,GAAO,QAAUC,KC9EjB,IAAAG,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAuEA,SAASC,GAAWC,EAAGC,EAAM,CAC5B,IAAIC,EACAC,EACAC,EACAC,EACAC,EAeJ,IAVAF,EAAKJ,EAAE,MAAO,CAAE,EAChBG,EAAMH,EAAE,QAAS,CAAE,EAGnBK,EAAKL,EAAE,OAGPE,EAAOF,EAAE,KAGHM,EAAK,EAAGA,EAAKF,EAAIE,IACtBJ,EAAMG,CAAG,EAAIJ,EAAI,EACjBI,GAAMF,CAER,CAKAL,GAAO,QAAUC,KCpGjB,IAAAQ,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAuEA,SAASC,GAAWC,EAAGC,EAAM,CAC5B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EA2BJ,IAtBAN,EAAKL,EAAE,MACPQ,EAAKR,EAAE,QACFA,EAAE,QAAU,aAEhBM,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXF,EAAMK,EAAI,CAAE,EACZJ,EAAMI,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,IAGzBF,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXF,EAAMK,EAAI,CAAE,EACZJ,EAAMI,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,GAG1BC,EAAKT,EAAE,OAGPE,EAAOF,EAAE,KAGHW,EAAK,EAAGA,EAAKJ,EAAII,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKJ,EAAII,IACtBR,EAAMO,CAAG,EAAIR,EAAI,EACjBQ,GAAMN,EAEPM,GAAML,CACP,CACD,CAKAN,GAAO,QAAUC,KCxHjB,IAAAa,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAuEA,SAASC,GAAWC,EAAGC,EAAM,CAC5B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EA+BJ,IA1BAR,EAAKN,EAAE,MACPU,EAAKV,EAAE,QACFA,EAAE,QAAU,aAEhBO,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXH,EAAMO,EAAI,CAAE,EACZN,EAAMM,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBL,EAAMK,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,IAGzBH,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXH,EAAMO,EAAI,CAAE,EACZN,EAAMM,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBL,EAAMK,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,GAG1BC,EAAKX,EAAE,OAGPE,EAAOF,EAAE,KAGHc,EAAK,EAAGA,EAAKL,EAAIK,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKL,EAAIK,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKL,EAAIK,IACtBV,EAAMS,CAAG,EAAIV,EAAI,EACjBU,GAAMR,EAEPQ,GAAMP,CACP,CACAO,GAAMN,CACP,CACD,CAKAP,GAAO,QAAUC,KClIjB,IAAAgB,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAuEA,SAASC,GAAWC,EAAGC,EAAM,CAC5B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAmCJ,IA9BAV,EAAKP,EAAE,MACPY,EAAKZ,EAAE,QACFA,EAAE,QAAU,aAEhBQ,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXJ,EAAMS,EAAI,CAAE,EACZR,EAAMQ,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBP,EAAMO,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBN,EAAMM,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,IAGzBJ,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXJ,EAAMS,EAAI,CAAE,EACZR,EAAMQ,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBP,EAAMO,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBN,EAAMM,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,GAG1BC,EAAKb,EAAE,OAGPE,EAAOF,EAAE,KAGHiB,EAAK,EAAGA,EAAKN,EAAIM,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKN,EAAIM,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKN,EAAIM,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKN,EAAIM,IACtBZ,EAAMW,CAAG,EAAIZ,EAAI,EACjBY,GAAMV,EAEPU,GAAMT,CACP,CACAS,GAAMR,CACP,CACAQ,GAAMP,CACP,CACD,CAKAR,GAAO,QAAUC,KC5IjB,IAAAmB,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAuEA,SAASC,GAAWC,EAAGC,EAAM,CAC5B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAuCJ,IAlCAZ,EAAKR,EAAE,MACPc,EAAKd,EAAE,QACFA,EAAE,QAAU,aAEhBS,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXL,EAAMW,EAAI,CAAE,EACZV,EAAMU,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBT,EAAMS,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBR,EAAMQ,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBP,EAAMO,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,IAGzBL,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXL,EAAMW,EAAI,CAAE,EACZV,EAAMU,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBT,EAAMS,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBR,EAAMQ,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBP,EAAMO,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,GAG1BC,EAAKf,EAAE,OAGPE,EAAOF,EAAE,KAGHoB,EAAK,EAAGA,EAAKP,EAAIO,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKP,EAAIO,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKP,EAAIO,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKP,EAAIO,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKP,EAAIO,IACtBd,EAAMa,CAAG,EAAId,EAAI,EACjBc,GAAMZ,EAEPY,GAAMX,CACP,CACAW,GAAMV,CACP,CACAU,GAAMT,CACP,CACAS,GAAMR,CACP,CACD,CAKAT,GAAO,QAAUC,KCtJjB,IAAAsB,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAyEA,SAASC,GAAWC,EAAGC,EAAM,CAC5B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EA2CJ,IAtCAd,EAAKT,EAAE,MACPgB,EAAKhB,EAAE,QACFA,EAAE,QAAU,aAEhBU,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXN,EAAMa,EAAI,CAAE,EACZZ,EAAMY,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBV,EAAMU,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBT,EAAMS,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBR,EAAMQ,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,IAGzBN,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXN,EAAMa,EAAI,CAAE,EACZZ,EAAMY,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBV,EAAMU,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBT,EAAMS,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBR,EAAMQ,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,GAG1BC,EAAKjB,EAAE,OAGPE,EAAOF,EAAE,KAGHuB,EAAK,EAAGA,EAAKR,EAAIQ,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKR,EAAIQ,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKR,EAAIQ,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKR,EAAIQ,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKR,EAAIQ,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKR,EAAIQ,IACtBhB,EAAMe,CAAG,EAAIhB,EAAI,EACjBgB,GAAMd,EAEPc,GAAMb,CACP,CACAa,GAAMZ,CACP,CACAY,GAAMX,CACP,CACAW,GAAMV,CACP,CACAU,GAAMT,CACP,CACD,CAKAV,GAAO,QAAUC,KClKjB,IAAAyB,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAyEA,SAASC,GAAWC,EAAGC,EAAM,CAC5B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EA+CJ,IA1CAhB,EAAKV,EAAE,MACPkB,EAAKlB,EAAE,QACFA,EAAE,QAAU,aAEhBW,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXP,EAAMe,EAAI,CAAE,EACZd,EAAMc,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBV,EAAMU,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBT,EAAMS,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,IAGzBP,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXP,EAAMe,EAAI,CAAE,EACZd,EAAMc,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBV,EAAMU,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBT,EAAMS,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,GAG1BC,EAAKnB,EAAE,OAGPE,EAAOF,EAAE,KAGH0B,EAAK,EAAGA,EAAKT,EAAIS,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKT,EAAIS,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKT,EAAIS,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKT,EAAIS,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKT,EAAIS,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKT,EAAIS,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKT,EAAIS,IACtBlB,EAAMiB,CAAG,EAAIlB,EAAI,EACjBkB,GAAMhB,EAEPgB,GAAMf,CACP,CACAe,GAAMd,CACP,CACAc,GAAMb,CACP,CACAa,GAAMZ,CACP,CACAY,GAAMX,CACP,CACAW,GAAMV,CACP,CACD,CAKAX,GAAO,QAAUC,KC5KjB,IAAA4B,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAyEA,SAASC,GAAWC,EAAGC,EAAM,CAC5B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAmDJ,IA9CAlB,EAAKX,EAAE,MACPoB,EAAKpB,EAAE,QACFA,EAAE,QAAU,aAEhBY,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXQ,EAAKR,EAAI,CAAE,EACXR,EAAMiB,EAAI,CAAE,EACZhB,EAAMgB,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBf,EAAMe,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBV,EAAMU,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,IAGzBR,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXQ,EAAKR,EAAI,CAAE,EACXR,EAAMiB,EAAI,CAAE,EACZhB,EAAMgB,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBf,EAAMe,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBV,EAAMU,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,GAG1BC,EAAKrB,EAAE,OAGPE,EAAOF,EAAE,KAGH6B,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IACtBpB,EAAMmB,CAAG,EAAIpB,EAAI,EACjBoB,GAAMlB,EAEPkB,GAAMjB,CACP,CACAiB,GAAMhB,CACP,CACAgB,GAAMf,CACP,CACAe,GAAMd,CACP,CACAc,GAAMb,CACP,CACAa,GAAMZ,CACP,CACAY,GAAMX,CACP,CACD,CAKAZ,GAAO,QAAUC,KCtLjB,IAAA+B,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAyEA,SAASC,GAAWC,EAAGC,EAAM,CAC5B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAuDJ,IAlDApB,EAAKZ,EAAE,MACPsB,EAAKtB,EAAE,QACFA,EAAE,QAAU,aAEhBa,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXQ,EAAKR,EAAI,CAAE,EACXS,EAAKT,EAAI,CAAE,EACXT,EAAMmB,EAAI,CAAE,EACZlB,EAAMkB,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzBjB,EAAMiB,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBf,EAAMe,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,IAGzBT,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXQ,EAAKR,EAAI,CAAE,EACXS,EAAKT,EAAI,CAAE,EACXT,EAAMmB,EAAI,CAAE,EACZlB,EAAMkB,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzBjB,EAAMiB,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBf,EAAMe,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,GAG1BC,EAAKvB,EAAE,OAGPE,EAAOF,EAAE,KAGHgC,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IACtBtB,EAAMqB,CAAG,EAAItB,EAAI,EACjBsB,GAAMpB,EAEPoB,GAAMnB,CACP,CACAmB,GAAMlB,CACP,CACAkB,GAAMjB,CACP,CACAiB,GAAMhB,CACP,CACAgB,GAAMf,CACP,CACAe,GAAMd,CACP,CACAc,GAAMb,CACP,CACAa,GAAMZ,CACP,CACD,CAKAb,GAAO,QAAUC,KChMjB,IAAAkC,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAyEA,SAASC,GAAYC,EAAGC,EAAM,CAC7B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EA2DJ,IAtDAtB,EAAKb,EAAE,MACPwB,EAAKxB,EAAE,QACFA,EAAE,QAAU,aAEhBc,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXQ,EAAKR,EAAI,CAAE,EACXS,EAAKT,EAAI,CAAE,EACXU,EAAKV,EAAI,CAAE,EACXV,EAAMqB,EAAI,CAAE,EACZpB,EAAMoB,EAAI,CAAE,EAAMV,EAAGU,EAAG,CAAC,EACzBnB,EAAMmB,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzBlB,EAAMkB,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBjB,EAAMiB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBf,EAAMe,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,IAGzBV,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXQ,EAAKR,EAAI,CAAE,EACXS,EAAKT,EAAI,CAAE,EACXU,EAAKV,EAAI,CAAE,EACXV,EAAMqB,EAAI,CAAE,EACZpB,EAAMoB,EAAI,CAAE,EAAMV,EAAGU,EAAG,CAAC,EACzBnB,EAAMmB,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzBlB,EAAMkB,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBjB,EAAMiB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBf,EAAMe,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,GAG1BC,EAAKzB,EAAE,OAGPE,EAAOF,EAAE,KAGHmC,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IACtBxB,EAAMuB,CAAG,EAAIxB,EAAI,EACjBwB,GAAMtB,EAEPsB,GAAMrB,CACP,CACAqB,GAAMpB,CACP,CACAoB,GAAMnB,CACP,CACAmB,GAAMlB,CACP,CACAkB,GAAMjB,CACP,CACAiB,GAAMhB,CACP,CACAgB,GAAMf,CACP,CACAe,GAAMd,CACP,CACAc,GAAMb,CACP,CACD,CAKAd,GAAO,QAAUC,KC1MjB,IAAAqC,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAsBA,IAAIC,GAAQ,KACRC,GAAY,KAKZC,GAAO,QAsDX,SAASC,GAAWC,EAAGC,EAAM,CAC5B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAoBJ,IAlBAJ,EAAKL,EAAE,MAGPI,EAAMR,GAAOS,CAAG,EAGhBH,EAAOF,EAAE,KAGTM,EAAKN,EAAE,QAGPO,EAAKP,EAAE,OAGPG,EAAOH,EAAE,MAGHS,EAAI,EAAGA,EAAIL,EAAKK,IACrBD,EAAKX,GAAWQ,EAAIC,EAAIC,EAAIJ,EAAMM,EAAGX,EAAK,EAC1CI,EAAMM,CAAG,EAAIP,EAAI,CAEnB,CAKAN,GAAO,QAAUI,KCvHjB,IAAAW,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAsBA,IAAIC,GAAiB,KACjBC,GAAwB,KACxBC,GAAiB,KACjBC,GAA2B,KAC3BC,GAA2B,KAC3BC,GAA2B,KAC3BC,GAA2B,KAC3BC,GAA2B,KAC3BC,GAA2B,KAC3BC,GAA2B,KAC3BC,GAA2B,KAC3BC,GAA4B,KAC5BC,GAAmB,KACnBC,GAAmB,KACnBC,GAAmB,KACnBC,GAAmB,KACnBC,GAAmB,KACnBC,GAAmB,KACnBC,GAAmB,KACnBC,GAAmB,KACnBC,GAAoB,KACpBC,GAAoB,KACpBC,GAAoB,KACpBC,GAAoB,KACpBC,GAAoB,KACpBC,GAAoB,KACpBC,GAAoB,KACpBC,GAAoB,KACpBC,GAAoB,KACpBC,GAAoB,KACpBC,GAAoB,KACpBC,GAAqB,KACrBC,GAAoB,KACpBC,GAAY,KACZC,GAAY,KACZC,GAAY,KACZC,GAAY,KACZC,GAAY,KACZC,GAAY,KACZC,GAAY,KACZC,GAAY,KACZC,GAAY,KACZC,GAAY,KACZC,GAAa,KACbC,GAAY,KAKZC,GAAU,CACbZ,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,EACD,EACIG,GAAmB,CACtBzB,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,EACD,EACIgB,GAAkB,CACrBnC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,EACD,EACI4B,GAA2B,CAC9B7C,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,EACD,EACIsC,GAAWJ,GAAQ,OAAS,EA0DhC,SAASK,GAASC,EAAQC,EAAM,CAC/B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA,EACAC,EAQJ,GALAD,EAAI3D,GAAgBiD,EAAQ,CAAE,CAAE,EAChCI,EAAMM,EAAE,MACRR,EAAQE,EAAI,OAGPF,IAAU,EACd,OAAKQ,EAAE,iBACCf,GAAkBO,CAAM,EAAGQ,EAAGT,CAAI,EAEnCP,GAASQ,CAAM,EAAGQ,EAAGT,CAAI,EAKjC,IAFAK,EAAM,EACNG,EAAK,EACCE,EAAI,EAAGA,EAAIT,EAAOS,IACvB,EAAIP,EAAKO,CAAE,EAGXL,GAAO,EAGF,IAAM,IACVG,GAAM,GAIR,GAAKH,IAAQ,EAIb,IAAKJ,IAAU,EACd,OAAKQ,EAAE,iBACCf,GAAkBO,CAAM,EAAGQ,EAAGT,CAAI,EAEnCP,GAASQ,CAAM,EAAGQ,EAAGT,CAAI,EAKjC,GAHAM,EAAKG,EAAE,QAGFD,IAAOP,EAAM,EAAI,CAErB,IAAMS,EAAI,EAAGA,EAAIT,GACXE,EAAKO,CAAE,IAAM,EADKA,IACvB,CAMD,OAFAD,EAAE,MAAQ,CAAEN,EAAIO,CAAC,CAAE,EACnBD,EAAE,QAAU,CAAEH,EAAGI,CAAC,CAAE,EACfD,EAAE,iBACCf,GAAkB,CAAE,EAAGe,EAAGT,CAAI,EAE/BP,GAAS,CAAE,EAAGgB,EAAGT,CAAI,CAC7B,CAIA,GAHAI,EAAMxD,GAAgB0D,CAAG,EAGpBF,IAAQ,EAAI,CAKhB,GAHAF,EAAOrD,GAAuBsD,EAAKG,EAAIG,EAAE,MAAO,EAG3CJ,IAAUH,EAAK,CAAC,EAAEA,EAAK,CAAC,EAAE,EAU9B,OARKE,IAAQ,EACZG,EAAKL,EAAM,CAAE,EAEbK,EAAKL,EAAM,CAAE,EAEdO,EAAE,MAAQ,CAAEJ,CAAI,EAChBI,EAAE,QAAU,CAAEL,CAAI,EAClBK,EAAE,OAASF,EACNE,EAAE,iBACCf,GAAkB,CAAE,EAAGe,EAAGT,CAAI,EAE/BP,GAAS,CAAE,EAAGgB,EAAGT,CAAI,EAK7B,GAAKC,GAASJ,GAEb,OAAKY,EAAE,iBACCf,GAAkBO,CAAM,EAAGQ,EAAGT,CAAI,EAEnCP,GAASQ,CAAM,EAAGQ,EAAGT,CAAI,CAGlC,CAIA,GAAKC,GAASJ,GACb,OAAKY,EAAE,iBACCb,GAA0BK,EAAM,CAAE,EAAGQ,EAAGT,CAAI,EAE7CL,GAAiBM,EAAM,CAAE,EAAGQ,EAAGT,CAAI,EAG3C,GAAKS,EAAE,iBACN,OAAO7B,GAAmB6B,EAAGT,CAAI,EAElCR,GAAWiB,EAAGT,CAAI,EACnB,CAKArD,GAAO,QAAUmD,KC1SjB,IAAAa,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAgEA,IAAIC,GAAO,KAKXD,GAAO,QAAUC,KCrEjB,IAAAC,GAAAC,EAAA,SAAAC,IAAAC,GAAA,CAAAA,GAAA,SACE,OACA,WACA,OACD,iBACC,mBACA,UACA,iBACA,sBACA,yBACA,OACA,UACA,SACF,ICbA,IAAAC,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAsBA,IAAIC,GAAW,KAcf,SAASC,IAAW,CACnB,OAAOD,GAAS,MAAM,CACvB,CAKAD,GAAO,QAAUE,KC3CjB,IAAAC,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAqCA,SAASC,IAAc,CAEtB,MAAO,CACN,KAAQ,EACR,SAAY,EACZ,KAAQ,EACR,eAAkB,EAClB,iBAAoB,EACpB,QAAW,EACX,eAAkB,EAClB,oBAAuB,EACvB,uBAA0B,EAC1B,KAAQ,EACR,QAAW,GACX,QAAW,EACZ,CACD,CAKAD,GAAO,QAAUC,KC1DjB,IAAAC,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAsBA,IAAIC,GAAc,QAAS,yCAA0C,EACjEC,GAAa,QAAS,oBAAqB,EA4B/C,SAASC,GAAQC,EAAQC,EAAS,CACjC,IAAIC,EACAC,EACAC,EAGJ,IADAF,EAAOJ,GAAYG,CAAO,EACpBG,EAAI,EAAGA,EAAIF,EAAK,OAAQE,IAC7BD,EAAID,EAAME,CAAE,EACZP,GAAaG,EAAQG,EAAGF,EAAQE,CAAE,CAAE,EAErC,OAAOH,CACR,CAKAJ,GAAO,QAAUG,KCnEjB,IAAAM,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAkCA,IAAIC,GAAc,QAAS,uDAAwD,EAC/EC,GAAO,KACPC,GAAc,KACdC,GAAS,KAKbH,GAAaC,GAAM,OAAQC,EAAY,EACvCC,GAAQF,GAAMC,GAAY,CAAE,EAK5BH,GAAO,QAAUE,KChDjB,IAAAG,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAsBA,IAAIC,GAAgB,QAAS,8BAA+B,EACxDC,GAAc,KAA8C,KAK5DC,GAAOF,GAAeC,GAAY,EAAG,CACxC,WAAc,EACf,CAAC,EAoBD,SAASE,GAAUC,EAAS,CAC3B,IAAIC,EAAIH,GAAME,CAAO,EACrB,OAAS,OAAOC,GAAM,SAAaA,EAAI,IACxC,CAKAN,GAAO,QAAUI,KC1DjB,IAAAG,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAsCA,IAAIC,GAAO,KAKXD,GAAO,QAAUC,KC3CjB,IAAAC,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAsBA,IAAIC,GAAc,KAA8C,KAK5DC,GAAOD,GAAY,EAmBvB,SAASE,GAAUC,EAAS,CAC3B,IAAIC,EAAIH,GAAME,CAAO,EACrB,OAAS,OAAOC,GAAM,SAAaA,EAAI,IACxC,CAKAL,GAAO,QAAUG,KCtDjB,IAAAG,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAkCA,IAAIC,GAAO,KAKXD,GAAO,QAAUC,KCvCjB,IAAAC,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAsBA,IAAIC,GAAW,KACXC,GAAW,KAmBf,SAASC,GAASC,EAAS,CAC1B,IAAIC,EAAM,OAAOD,EACjB,OAAKC,IAAM,SACDJ,GAAUG,CAAO,EAAMA,EAAS,KAErCC,IAAM,SACHH,GAAUE,CAAO,EAElB,IACR,CAKAJ,GAAO,QAAUG,KCxDjB,IAAAG,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAkCA,IAAIC,GAAO,KAKXD,GAAO,QAAUC,KCvCjB,IAAAC,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAsBA,IAAIC,GAAW,KACXC,GAAW,KAiBf,SAASC,GAASC,EAAS,CAC1B,IAAIC,EAAM,OAAOD,EACjB,OAAKC,IAAM,SACDH,GAAUE,CAAO,IAAM,KAAS,KAAOA,EAE5CC,IAAM,SACHJ,GAAUG,CAAO,EAElB,IACR,CAKAJ,GAAO,QAAUG,KCtDjB,IAAAG,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAmCA,IAAIC,GAAO,KAKXD,GAAO,QAAUC,KCxCjB,IAAAC,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAsBA,IAAIC,GAAa,KACbC,GAAW,KACXC,GAAW,KACXC,GAAa,KACbC,GAAY,KACZC,GAAW,KACXC,GAAU,KAuCd,SAASC,GAA4BC,EAAGC,EAAI,CAC3C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EAUJ,IARAH,EAAKV,GAAUM,EAAG,EAAM,EACxBK,EAAKV,GAAYK,EAAG,EAAM,EAC1BM,EAAIF,EAAG,OAEPF,EAAU,CAAC,EACXC,EAAQ,CAAC,EAGHI,EAAI,EAAGA,EAAIN,EAAGM,IACnBJ,EAAM,KAAM,CAAE,EACdD,EAAQ,KAAMG,EAAI,CAAE,CAAE,EAGvB,IAAME,EAAI,EAAGA,EAAID,EAAGC,IACnBJ,EAAM,KAAMC,EAAIG,CAAE,CAAE,EACpBL,EAAQ,KAAMG,EAAIE,CAAE,CAAE,EAEvB,OAAKf,GAAYQ,CAAE,EAEX,IAAIA,EAAE,YAAaP,GAAUO,CAAE,EAAGF,GAASE,CAAE,EAAGG,EAAOD,EAASN,GAAWI,CAAE,EAAGH,GAAUG,CAAE,EAAG,CACrG,SAAY,EACb,CAAC,EAEK,IAAIA,EAAE,YAAaP,GAAUO,CAAE,EAAGF,GAASE,CAAE,EAAGG,EAAOD,EAASN,GAAWI,CAAE,EAAGH,GAAUG,CAAE,CAAE,CACtG,CAKAT,GAAO,QAAUQ,KCxGjB,IAAAS,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwDA,IAAIC,GAAO,KAKXD,GAAO,QAAUC,KC7DjB,IAAAC,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAsBA,IAAIC,GAAa,KACbC,GAAW,KACXC,GAAW,KACXC,GAAa,KACbC,GAAY,KACZC,GAAW,KACXC,GAAU,KA6Cd,SAASC,GAA2BC,EAAI,CACvC,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EAUJ,IARAH,EAAKT,GAAUM,EAAG,EAAM,EACxBI,EAAKT,GAAYK,EAAG,EAAM,EAC1BK,EAAIF,EAAG,OAEPF,EAAU,CAAC,EACXC,EAAQ,CAAC,EAGHI,EAAI,EAAGA,EAAID,EAAGC,IACdH,EAAIG,CAAE,IAAM,IAChBJ,EAAM,KAAMC,EAAIG,CAAE,CAAE,EACpBL,EAAQ,KAAMG,EAAIE,CAAE,CAAE,GAGxB,OAAKJ,EAAM,SAAWG,EAEdL,EAEHR,GAAYQ,CAAE,EAEX,IAAIA,EAAE,YAAaP,GAAUO,CAAE,EAAGF,GAASE,CAAE,EAAGE,EAAOD,EAASL,GAAWI,CAAE,EAAGH,GAAUG,CAAE,EAAG,CACrG,SAAY,EACb,CAAC,EAEK,IAAIA,EAAE,YAAaP,GAAUO,CAAE,EAAGF,GAASE,CAAE,EAAGE,EAAOD,EAASL,GAAWI,CAAE,EAAGH,GAAUG,CAAE,CAAE,CACtG,CAKAT,GAAO,QAAUQ,KC/GjB,IAAAQ,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cA0DA,IAAIC,GAAO,KAKXD,GAAO,QAAUC,KC/DjB,IAAAC,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAsBA,IAAIC,GAAkB,QAAS,oCAAqC,EAChEC,GAAQ,QAAS,oBAAqB,EACtCC,GAAS,QAAS,2BAA4B,EAC9CC,GAAQ,KACRC,GAAQ,KAuCZ,SAASC,GAASC,EAAGC,EAAW,CAC/B,IAAIC,EAAON,GAAQ,IAAID,GAAO,KAAM,KAAM,EAAG,EAAGG,GAAOE,CAAE,CAAE,EAC3D,OAAOH,GAAOG,EAAGN,GAAiBQ,CAAK,EAAG,GAAMD,CAAS,CAC1D,CAKAR,GAAO,QAAUM,KCzEjB,IAAAI,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwDA,IAAIC,GAAO,KAKXD,GAAO,QAAUC,KC7DjB,IAAAC,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAsBA,IAAIC,GAAmB,QAAS,iCAAkC,EAC9DC,GAAc,QAAS,sBAAuB,EAC9CC,GAAW,QAAS,wBAAyB,EAC7CC,GAAS,QAAS,qBAAsB,EACxCC,GAAkB,KAClBC,GAAS,KAA+B,KACxCC,GAAS,KAA+B,KACxCC,GAAQ,KAAoC,KAC5CC,GAAW,KACXC,GAAW,KACXC,GAAa,KACbC,GAAY,KACZC,GAAW,KAKXC,GAASR,GAAO,EAChBS,GAASR,GAAO,EAChBS,GAAQR,GAAM,EAuFlB,SAASS,GAAWC,EAAI,CACvB,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAGJ,GAAKd,EAAE,wBACN,OAAOA,EAAE,wBAAwB,EAqClC,IAlCAI,EAAKb,GAAUS,CAAE,EACjBK,EAAKb,GAAUQ,EAAG,EAAM,EACxBM,EAAKb,GAAYO,EAAG,EAAM,EAC1BY,EAAIP,EAAG,OAGPI,EAAIT,EAAE,MAAQ,QACdO,EAAKP,EAAE,SAAW,CAAES,CAAE,EACtBI,EAAIN,EAAG,OAGPN,EAASd,GAAiBiB,CAAG,EAG7BD,EAAM,GAAMS,EAAE,GAAMC,EAGpBL,EAAI,IAAIvB,GAAU,IAAID,GAAamB,CAAI,CAAE,EAGzCO,EAAI,EACJF,EAAE,QAASE,EAAK3B,GAAqB,EAAI,CAAE,EAG3C2B,GAAK,EACLF,EAAE,SAAUE,EAAGd,GAAQQ,CAAG,EAAGrB,EAAiB,EAG9C2B,GAAK,EACLF,EAAE,YAAaE,EAAGxB,GAAQ0B,CAAE,EAAG7B,EAAiB,EAGhD4B,EAAIC,EAAI,EACRF,GAAK,EACCI,EAAI,EAAGA,EAAIF,EAAGE,IACnBN,EAAE,YAAaE,EAAGxB,GAAQmB,EAAGS,CAAC,CAAE,EAAG/B,EAAiB,EACpDyB,EAAE,YAAaE,EAAEC,EAAGzB,GAAQoB,EAAGQ,CAAC,EAAEb,CAAO,EAAGlB,EAAiB,EAC7D2B,GAAK,EAoBN,IAjBAA,GAAKC,EACLH,EAAE,YAAaE,EAAGxB,GAAQQ,GAAWM,CAAE,EAAEC,CAAO,EAAGlB,EAAiB,EAGpE2B,GAAK,EACLF,EAAE,QAASE,EAAGb,GAAQF,GAAUK,CAAE,CAAE,CAAE,EAGtCU,GAAK,EACLF,EAAE,QAASE,EAAGZ,GAAOW,CAAE,CAAE,EAGzBC,GAAK,EACLF,EAAE,YAAaE,EAAGxB,GAAQ2B,CAAE,EAAG9B,EAAiB,EAGhD2B,GAAK,EACCI,EAAI,EAAGA,EAAID,EAAGC,IACnBN,EAAE,QAASE,EAAGZ,GAAOS,EAAGO,CAAC,CAAE,CAAE,EAC7BJ,GAAK,EAGN,OAAAR,EAAO,EACFF,EAAE,QACNE,GAAUF,EAAE,MAAM,SAAa,EAAI,GAEpCQ,EAAE,SAAUE,EAAGR,EAAMnB,EAAiB,EAE/ByB,CACR,CAKA1B,GAAO,QAAUiB,KC/NjB,IAAAgB,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAsBA,IAAIC,GAAmB,QAAS,iCAAkC,EAC9DC,GAAsB,QAAS,4CAA6C,EAAE,OAC9EC,GAAc,QAAS,sBAAuB,EAC9CC,GAAa,QAAS,qBAAsB,EAC5CC,GAAW,QAAS,wBAAyB,EAC7CC,GAAkB,KAClBC,GAAS,KAA+B,KACxCC,GAAS,KAA+B,KACxCC,GAAQ,KAAoC,KAC5CC,GAAW,KACXC,GAAW,KACXC,GAAa,KACbC,GAAY,KACZC,GAAW,KAKXC,GAASR,GAAO,EAChBS,GAASR,GAAO,EAChBS,GAAQR,GAAM,EAwFlB,SAASS,GAAWC,EAAI,CACvB,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAGJ,GAAKf,EAAE,wBACN,OAAOA,EAAE,wBAAwB,EAsClC,IAnCAK,EAAKd,GAAUS,CAAC,EAChBM,EAAKd,GAAUQ,EAAG,EAAM,EACxBO,EAAKd,GAAYO,EAAG,EAAM,EAC1Ba,EAAIP,EAAG,OAGPI,EAAIV,EAAE,MAAQ,QACdQ,EAAKR,EAAE,SAAW,CAAEU,CAAE,EACtBI,EAAIN,EAAG,OAGPP,EAASd,GAAiBkB,CAAG,EAG7BD,EAAM,GAAMS,EAAE,GAAMC,EAGpBL,EAAI,IAAIvB,GAAU,IAAIF,GAAaoB,CAAI,CAAE,EACzCF,EAAQ,IAAIjB,GAAYwB,EAAE,MAAO,EAGjCE,EAAI,EACJF,EAAE,QAASE,EAAK7B,GAAqB,EAAI,CAAE,EAG3C6B,GAAK,EACLF,EAAE,SAAUE,EAAGf,GAAQS,CAAG,EAAGvB,EAAiB,EAG9C6B,GAAK,EACL5B,GAAqB8B,EAAGX,EAAO,EAAGS,CAAE,EAGpCC,EAAIC,EAAI,EACRF,GAAK,EACCI,EAAI,EAAGA,EAAIF,EAAGE,IACnBhC,GAAqBuB,EAAGS,CAAC,EAAGb,EAAO,EAAGS,CAAE,EACxC5B,GAAqBwB,EAAGQ,CAAC,EAAEd,EAAQC,EAAO,EAAGS,EAAEC,CAAE,EACjDD,GAAK,EAoBN,IAjBAA,GAAKC,EACL7B,GAAqBW,GAAWM,CAAE,EAAEC,EAAQC,EAAO,EAAGS,CAAE,EAGxDA,GAAK,EACLF,EAAE,QAASE,EAAGd,GAAQF,GAAUK,CAAE,CAAE,CAAE,EAGtCW,GAAK,EACLF,EAAE,QAASE,EAAGb,GAAOY,CAAE,CAAE,EAGzBC,GAAK,EACL5B,GAAqB+B,EAAGZ,EAAO,EAAGS,CAAE,EAGpCA,GAAK,EACCI,EAAI,EAAGA,EAAID,EAAGC,IACnBN,EAAE,QAASE,EAAGb,GAAOU,EAAGO,CAAC,CAAE,CAAE,EAC7BJ,GAAK,EAGN,OAAAR,EAAO,EACFH,EAAE,QACNG,GAAUH,EAAE,MAAM,SAAa,EAAI,GAEpCS,EAAE,SAAUE,EAAGR,EAAMrB,EAAiB,EAE/B2B,CACR,CAKA5B,GAAO,QAAUkB,KCnOjB,IAAAiB,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAqCA,IAAIC,GAAmB,QAAS,mCAAoC,EAChEC,GAAU,KACVC,GAAW,KAKXC,GACCH,GAAiB,EACrBG,GAAOF,GAEPE,GAAOD,GAMRH,GAAO,QAAUI,KCtDjB,IAAAC,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cA4CA,SAASC,GAAqBC,EAAQ,CACrC,IAAIC,EACAC,EAGJ,IADAD,EAAM,EACAC,EAAI,EAAGA,EAAIF,EAAM,OAAQE,IACzBF,EAAOE,CAAE,IAAM,IACnBD,GAAO,GAGT,OAAOA,CACR,CAKAH,GAAO,QAAUC,KC5DjB,IAAAI,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cA4CA,IAAIC,GAAO,KAKXD,GAAO,QAAUC,KCjDjB,IAAAC,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAsBA,IAAIC,GAAmB,KACnBC,GAAY,KACZC,GAAS,KACTC,GAAQ,KACRC,GAAW,KACXC,GAAW,KACXC,GAAS,QAAS,uBAAwB,EA8D9C,SAASC,GAAaC,EAAGC,EAAGC,EAAGC,EAAS,CACvC,IAAIC,EACAC,EACAC,EAMJ,GAJAD,EAAMT,GAAUI,CAAE,EAClBM,EAAMV,GAAUK,CAAE,EAGb,CAACT,GAAkBa,EAAKC,CAAI,EAChC,MAAM,IAAI,UAAWR,GAAQ,kHAAmHO,EAAKC,CAAI,CAAE,EAG5J,OAAAF,EAAOT,GAAOM,EAAGC,EAAGC,EAAQ,EAAK,EAGjCH,EAAIP,GAAWO,EAAGH,GAAUO,EAAM,EAAK,CAAE,EAGzCV,GAAQ,CAAEM,EAAGI,CAAK,CAAE,EAGbH,CACR,CAKAV,GAAO,QAAUQ,KCtHjB,IAAAQ,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAyEA,IAAIC,GAAO,KAKXD,GAAO,QAAUC,KC9EjB,IAAAC,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAsBA,IAAIC,GAAkB,QAAS,oCAAqC,EAChEC,GAAQ,KACRC,GAAQ,KACRC,GAAiB,KACjBC,GAAS,QAAS,2BAA4B,EAC9CC,GAAS,QAAS,uBAAwB,EAiD9C,SAASC,GAAgBC,EAAGC,EAAKC,EAAGC,EAAQC,EAAW,CACtD,IAAIC,EACAC,EACAC,EAMJ,GAHAD,EAAIZ,GAAOM,CAAE,EAGRM,IAAM,EACV,MAAM,IAAI,UAAWR,GAAQ,+GAAgHQ,CAAE,CAAE,EAIlJ,GADAC,EAAIX,GAAgBK,EAAKK,EAAE,CAAE,EACxBC,IAAM,GACV,MAAM,IAAI,WAAYT,GAAQ,6GAA8GQ,EAAGL,CAAI,CAAE,EAGtJ,OAAAI,EAAOR,GAAQ,KAAMS,CAAE,EACvBD,EAAME,CAAE,EAAIL,EAGLP,GAAOK,EAAGP,GAAiBY,CAAK,EAAGF,EAAQC,CAAS,CAC5D,CAKAZ,GAAO,QAAUO,KCxGjB,IAAAS,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cA4DA,IAAIC,GAAO,KAKXD,GAAO,QAAUC,KCjEjB,IAAAC,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAsBA,IAAIC,GAAkB,QAAS,oCAAqC,EAChEC,GAAQ,QAAS,oBAAqB,EACtCC,GAAQ,KACRC,GAAQ,KACRC,GAAiB,KACjBC,GAAS,QAAS,2BAA4B,EAC9CC,GAAS,QAAS,uBAAwB,EA6C9C,SAASC,GAAoBC,EAAGC,EAAKC,EAAOC,EAAQC,EAAW,CAC9D,IAAIC,EACAC,EACAC,EAMJ,GAHAD,EAAIZ,GAAOM,CAAE,EAGRM,IAAM,EACV,MAAM,IAAI,UAAWR,GAAQ,+GAAgHQ,CAAE,CAAE,EAIlJ,GADAC,EAAIX,GAAgBK,EAAKK,EAAE,CAAE,EACxBC,IAAM,GACV,MAAM,IAAI,WAAYT,GAAQ,6GAA8GQ,EAAGL,CAAI,CAAE,EAGtJ,OAAAI,EAAOR,GAAQ,KAAMS,CAAE,EACvBD,EAAME,CAAE,EAAI,IAAId,GAAOS,EAAO,IAAK,EAG5BP,GAAOK,EAAGR,GAAiBa,CAAK,EAAGF,EAAQC,CAAS,CAC5D,CAKAb,GAAO,QAAUQ,KCrGjB,IAAAS,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwDA,IAAIC,GAAO,KAKXD,GAAO,QAAUC,KC7DjB,IAAAC,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAsBA,IAAIC,GAAkB,QAAS,oCAAqC,EAChEC,GAAQ,QAAS,oBAAqB,EACtCC,GAAQ,KACRC,GAAQ,KACRC,GAAiB,KACjBC,GAAS,QAAS,2BAA4B,EAC9CC,GAAS,QAAS,uBAAwB,EA6C9C,SAASC,GAAkBC,EAAGC,EAAKC,EAAMC,EAAQC,EAAW,CAC3D,IAAIC,EACAC,EACAC,EAMJ,GAHAD,EAAIZ,GAAOM,CAAE,EAGRM,IAAM,EACV,MAAM,IAAI,UAAWR,GAAQ,+GAAgHQ,CAAE,CAAE,EAIlJ,GADAC,EAAIX,GAAgBK,EAAKK,EAAE,CAAE,EACxBC,IAAM,GACV,MAAM,IAAI,WAAYT,GAAQ,6GAA8GQ,EAAGL,CAAI,CAAE,EAGtJ,OAAAI,EAAOR,GAAQ,KAAMS,CAAE,EACvBD,EAAME,CAAE,EAAI,IAAId,GAAOS,CAAK,EAGrBP,GAAOK,EAAGR,GAAiBa,CAAK,EAAGF,EAAQC,CAAS,CAC5D,CAKAb,GAAO,QAAUQ,KCrGjB,IAAAS,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwDA,IAAIC,GAAO,KAKXD,GAAO,QAAUC,KC7DjB,IAAAC,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAsBA,IAAIC,GAAW,QAAS,0BAA2B,EAAE,YACjDC,GAAkB,QAAS,oCAAqC,EAChEC,GAAQ,QAAS,oBAAqB,EACtCC,GAAQ,KA4CZ,SAASC,GAAWC,EAAGC,EAAOC,EAAQC,EAAW,CAChD,IAAIC,EACAC,EACAC,EAGJ,IADAF,EAAO,CAAC,EACFE,EAAI,EAAGA,EAAIL,EAAM,OAAQK,IAC9BD,EAAIJ,EAAOK,CAAE,EACRX,GAAUU,CAAE,GAAKA,IAAM,EAC3BD,EAAK,KAAM,IAAIP,GAAOQ,EAAG,IAAK,CAAE,EAEhCD,EAAK,KAAM,IAAK,EAGlB,OAAON,GAAOE,EAAGJ,GAAiBQ,CAAK,EAAGF,EAAQC,CAAS,CAC5D,CAKAT,GAAO,QAAUK,KCzFjB,IAAAQ,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAyDA,IAAIC,GAAO,KAKXD,GAAO,QAAUC,KC9DjB,IAAAC,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAsBA,IAAIC,GAAW,QAAS,0BAA2B,EAAE,YACjDC,GAAkB,QAAS,oCAAqC,EAChEC,GAAQ,QAAS,oBAAqB,EACtCC,GAAQ,KA4CZ,SAASC,GAASC,EAAGC,EAAMC,EAAQC,EAAW,CAC7C,IAAIC,EACAC,EAGJ,IADAD,EAAO,CAAC,EACFC,EAAI,EAAGA,EAAIJ,EAAK,OAAQI,IACxBV,GAAUM,EAAMI,CAAE,CAAE,EACxBD,EAAK,KAAM,IAAIP,GAAOI,EAAMI,CAAE,CAAE,CAAE,EAElCD,EAAK,KAAM,IAAK,EAGlB,OAAON,GAAOE,EAAGJ,GAAiBQ,CAAK,EAAGF,EAAQC,CAAS,CAC5D,CAKAT,GAAO,QAAUK,KCvFjB,IAAAO,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAyDA,IAAIC,GAAO,KAKXD,GAAO,QAAUC,KC9DjB,IAAAC,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAsBA,IAAIC,GAAS,QAAS,uBAAwB,EAyG9C,SAASC,IAAU,CAClB,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EASJ,IAPAR,EAAQ,UAAW,CAAE,EACrBH,EAAU,UAAW,CAAE,EACvBC,EAAS,UAAW,CAAE,EACtBG,EAAQD,EAAM,OACdE,EAAQ,UAAW,EAAED,CAAM,EAC3BF,EAASG,EAAM,OACfE,EAAMN,EACAU,EAAI,EAAGA,EAAIP,EAAOO,IAAM,CAI7B,GAHAH,EAAIL,EAAOQ,CAAE,EACbD,EAAI,UAAWC,EAAE,CAAE,EACnBL,EAAOD,EAAOM,EAAET,CAAO,EAClBI,IAAS,QACRI,EAAI,EACRA,EAAI,EACOA,GAAKF,IAChBE,EAAIF,EAAI,WAEEF,IAAS,OACfI,EAAI,GACRA,GAAKF,EACAE,EAAI,IACRA,GAAKF,EACAE,IAAM,IACVA,GAAKF,KAGIE,GAAKF,IAChBE,GAAKF,EACAE,GAAKF,IACTE,GAAKF,YAIFF,IAAS,aAAeI,EAAI,IAChCA,GAAKF,GAEDE,EAAI,GAAKA,GAAKF,EAClB,MAAM,IAAI,WAAYV,GAAQ,+FAAgGa,EAAGD,CAAE,CAAE,EAGvID,EAAIT,EAASW,CAAE,EAGVF,EAAI,GAAKR,IAAW,EACxBM,GAAOG,EAAID,EAEXF,GAAOG,EAAID,CAEb,CACA,OAAOF,CACR,CAKAV,GAAO,QAAUE,KCpMjB,IAAAa,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAuCA,IAAIC,GAAU,KAKdD,GAAO,QAAUC,KC5CjB,IAAAC,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAoCA,SAASC,GAASC,EAAKC,EAAOC,EAASC,EAAQC,EAAOC,EAAM,CAC3D,IAAIC,EACAC,EACAC,EACAC,EACAC,EAEJ,GAAKL,GAAOJ,EAAM,OACjB,OAAOD,EAAI,UAAW,CAAE,EAAGA,EAAI,KAAMG,CAAO,EAO7C,IALAK,EAAM,CAAC,EAEPC,EAAIR,EAAOI,CAAI,EACfC,EAASJ,EAASG,CAAI,EAEhBK,EAAI,EAAGA,EAAID,EAAGC,IACnBH,EAAOR,GAASC,EAAKC,EAAOC,EAASC,EAAQC,EAAOC,EAAI,CAAE,EAC1DG,EAAI,KAAMD,CAAK,EACfJ,GAAUG,EAEX,OAAOE,CACR,CAKAV,GAAO,QAAUC,KC9DjB,IAAAY,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAsBA,IAAIC,GAAmB,QAAS,qCAAsC,EAClEC,GAAU,KAyBd,SAASC,GAAeC,EAAQC,EAAOC,EAASC,EAAQC,EAAQ,CAC/D,IAAIC,EACJ,GAAKJ,EAAM,SAAW,EACrB,MAAO,CAAC,EAET,IAAMI,EAAI,EAAGA,EAAIJ,EAAM,OAAQI,IAC9B,GAAKJ,EAAOI,CAAE,IAAM,EACnB,MAAO,CAAC,EAGV,OAAOP,GAASD,GAAkBG,CAAO,EAAGC,EAAOC,EAASC,EAAQC,EAAO,CAAE,CAC9E,CAKAR,GAAO,QAAUG,KChEjB,IAAAO,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwCA,IAAIC,GAAgB,KAKpBD,GAAO,QAAUC,KC7CjB,IAAAC,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAsBA,IAAIC,GAAiB,KACjBC,GAAW,KACXC,GAAW,KACXC,GAAa,KACbC,GAAW,KACXC,GAAU,KAiCd,SAASC,GAAWC,EAAI,CACvB,IAAIC,EACAC,EACAC,EACAC,EAIJ,GAFAF,EAAKP,GAAUK,EAAG,EAAK,EACvBI,EAAIF,EAAG,OACFE,EAAI,EACR,MAAM,IAAI,MAAO,0EAA2E,EAE7F,OAAAD,EAAKP,GAAYI,EAAG,EAAK,EAEzBC,EAAMC,EAAIE,EAAE,CAAE,EACdF,EAAIE,EAAE,CAAE,EAAIF,EAAIE,EAAE,CAAE,EACpBF,EAAIE,EAAE,CAAE,EAAIH,EAEZA,EAAME,EAAIC,EAAE,CAAE,EACdD,EAAIC,EAAE,CAAE,EAAID,EAAIC,EAAE,CAAE,EACpBD,EAAIC,EAAE,CAAE,EAAIH,EAGL,IAAID,EAAE,YAAaN,GAAUM,CAAE,EAAGF,GAASE,CAAE,EAAGE,EAAIC,EAAIV,GAAgBS,EAAIC,CAAG,EAAGN,GAAUG,CAAE,CAAE,CACxG,CAKAR,GAAO,QAAUO,KCxFjB,IAAAM,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAkDA,IAAIC,GAAO,KAKXD,GAAO,QAAUC,KCvDjB,IAAAC,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAsBA,IAAIC,GAAY,KACZC,GAAY,KA4FhB,SAASC,GAAgBC,EAAGC,EAAGC,EAAM,CACpC,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EA8BJ,IAzBAA,EAAI9B,GAAWG,EAAE,MAAOA,EAAE,QAASC,EAAE,OAAQ,EAC7Ca,EAAKa,EAAE,GACPV,EAAKU,EAAE,GACPT,EAAKS,EAAE,GAGPxB,EAAQL,GAAWE,EAAE,MAAOC,EAAE,KAAM,EAGpCkB,EAAKnB,EAAE,OACPoB,EAAKnB,EAAE,OAGPG,EAAOJ,EAAE,KACTK,EAAOJ,EAAE,KAGTO,EAAMS,EAAG,CAAC,EACVP,EAAMQ,EAAG,CAAC,EAGVZ,EAAMN,EAAE,UAAU,CAAC,EACnBO,EAAMN,EAAE,UAAU,CAAC,EAGbyB,EAAKZ,EAAG,CAAC,EAAGY,EAAK,GAUtB,IATKA,EAAKvB,GACTa,EAAKU,EACLA,EAAK,IAELV,EAAKb,EACLuB,GAAMvB,GAEPS,EAAMO,EAAOO,EAAGT,EAAG,CAAC,EACpBJ,EAAMO,EAAOM,EAAGR,EAAG,CAAC,EACdO,EAAKX,EAAG,CAAC,EAAGW,EAAK,GAiBtB,IAhBKA,EAAKtB,GACTY,EAAKU,EACLA,EAAK,IAELV,EAAKZ,EACLsB,GAAMtB,GAGPkB,EAAKT,EAAQa,EAAGR,EAAG,CAAC,EACpBK,EAAKT,EAAQY,EAAGP,EAAG,CAAC,EAGpBT,EAAMQ,EAAG,CAAC,EAAMF,EAAGE,EAAG,CAAC,EACvBN,EAAMO,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EAGjBM,EAAK,EAAGA,EAAKR,EAAIQ,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKR,EAAIQ,IACtBhB,EAAKF,EAAMiB,EAAIpB,EAAKI,EAAKF,EAAMiB,CAAG,CAAE,CAAE,EACtCA,GAAMb,EACNc,GAAMZ,EAEPW,GAAMZ,EACNa,GAAMX,CACP,CAGH,CAKAf,GAAO,QAAUG,KCrNjB,IAAA6B,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwBA,IAAIC,GAAY,KACZC,GAAY,KA4FhB,SAASC,GAAgBC,EAAGC,EAAGC,EAAM,CACpC,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EA8BJ,IAzBAA,EAAIrC,GAAWG,EAAE,MAAOA,EAAE,QAASC,EAAE,OAAQ,EAC7CiB,EAAKgB,EAAE,GACPZ,EAAKY,EAAE,GACPX,EAAKW,EAAE,GAGP/B,EAAQL,GAAWE,EAAE,MAAOC,EAAE,KAAM,EAGpCuB,EAAKxB,EAAE,OACPyB,EAAKxB,EAAE,OAGPG,EAAOJ,EAAE,KACTK,EAAOJ,EAAE,KAGTO,EAAMc,EAAG,CAAC,EACVX,EAAMY,EAAG,CAAC,EAGVjB,EAAMN,EAAE,UAAU,CAAC,EACnBO,EAAMN,EAAE,UAAU,CAAC,EAGbgC,EAAKf,EAAG,CAAC,EAAGe,EAAK,GAUtB,IATKA,EAAK9B,GACTkB,EAAKY,EACLA,EAAK,IAELZ,EAAKlB,EACL8B,GAAM9B,GAEPY,EAAMS,EAAOS,EAAGX,EAAG,CAAC,EACpBL,EAAMQ,EAAOQ,EAAGV,EAAG,CAAC,EACdS,EAAKd,EAAG,CAAC,EAAGc,EAAK,GAYtB,IAXKA,EAAK7B,GACTiB,EAAKY,EACLA,EAAK,IAELZ,EAAKjB,EACL6B,GAAM7B,GAEPO,EAAMY,EAAG,CAAC,EAAMF,EAAGE,EAAG,CAAC,EACvBT,EAAMU,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBT,EAAMC,EAAQiB,EAAGV,EAAG,CAAC,EACrBN,EAAMC,EAAQe,EAAGT,EAAG,CAAC,EACfQ,EAAKb,EAAG,CAAC,EAAGa,EAAK,GAiBtB,IAhBKA,EAAK5B,GACTgB,EAAKY,EACLA,EAAK,IAELZ,EAAKhB,EACL4B,GAAM5B,GAGPuB,EAAKZ,EAAQiB,EAAGT,EAAG,CAAC,EACpBK,EAAKX,EAAQe,EAAGR,EAAG,CAAC,EAGpBd,EAAMa,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBV,EAAMW,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EAGjBO,EAAK,EAAGA,EAAKT,EAAIS,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKT,EAAIS,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKT,EAAIS,IACtBrB,EAAKF,EAAMsB,EAAIzB,EAAKI,EAAKF,EAAMsB,CAAG,CAAE,CAAE,EACtCA,GAAMlB,EACNmB,GAAMhB,EAEPe,GAAMjB,EACNkB,GAAMf,CACP,CACAc,GAAMhB,EACNiB,GAAMd,CACP,CAIJ,CAKAjB,GAAO,QAAUG,KC/OjB,IAAAoC,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwBA,IAAIC,GAAY,KACZC,GAAY,KA4FhB,SAASC,GAAgBC,EAAGC,EAAGC,EAAM,CACpC,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EA8BJ,IAzBAA,EAAI5C,GAAWG,EAAE,MAAOA,EAAE,QAASC,EAAE,OAAQ,EAC7CqB,EAAKmB,EAAE,GACPd,EAAKc,EAAE,GACPb,EAAKa,EAAE,GAGPtC,EAAQL,GAAWE,EAAE,MAAOC,EAAE,KAAM,EAGpC4B,EAAK7B,EAAE,OACP8B,EAAK7B,EAAE,OAGPG,EAAOJ,EAAE,KACTK,EAAOJ,EAAE,KAGTO,EAAMmB,EAAG,CAAC,EACVf,EAAMgB,EAAG,CAAC,EAGVtB,EAAMN,EAAE,UAAU,CAAC,EACnBO,EAAMN,EAAE,UAAU,CAAC,EAGbuC,EAAKlB,EAAG,CAAC,EAAGkB,EAAK,GAUtB,IATKA,EAAKrC,GACTuB,EAAKc,EACLA,EAAK,IAELd,EAAKvB,EACLqC,GAAMrC,GAEPe,EAAMW,EAAOW,EAAGb,EAAG,CAAC,EACpBN,EAAMS,EAAOU,EAAGZ,EAAG,CAAC,EACdW,EAAKjB,EAAG,CAAC,EAAGiB,EAAK,GAYtB,IAXKA,EAAKpC,GACTsB,EAAKc,EACLA,EAAK,IAELd,EAAKtB,EACLoC,GAAMpC,GAEPQ,EAAMgB,EAAG,CAAC,EAAMF,EAAGE,EAAG,CAAC,EACvBZ,EAAMa,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBX,EAAMC,EAAQqB,EAAGZ,EAAG,CAAC,EACrBP,EAAMC,EAAQkB,EAAGX,EAAG,CAAC,EACfU,EAAKhB,EAAG,CAAC,EAAGgB,EAAK,GAYtB,IAXKA,EAAKnC,GACTqB,EAAKc,EACLA,EAAK,IAELd,EAAKrB,EACLmC,GAAMnC,GAEPO,EAAMiB,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBb,EAAMc,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EACvBZ,EAAMC,EAAQqB,EAAGX,EAAG,CAAC,EACrBR,EAAMC,EAAQkB,EAAGV,EAAG,CAAC,EACfS,EAAKf,EAAG,CAAC,EAAGe,EAAK,GAiBtB,IAhBKA,EAAKlC,GACToB,EAAKc,EACLA,EAAK,IAELd,EAAKpB,EACLkC,GAAMlC,GAGP4B,EAAKf,EAAQqB,EAAGV,EAAG,CAAC,EACpBK,EAAKb,EAAQkB,EAAGT,EAAG,CAAC,EAGpBnB,EAAMkB,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EACvBd,EAAMe,EAAG,CAAC,EAAML,EAAGK,EAAG,CAAC,EAGjBQ,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IACtB1B,EAAKF,EAAM2B,EAAI9B,EAAKI,EAAKF,EAAM2B,CAAG,CAAE,CAAE,EACtCA,GAAMvB,EACNwB,GAAMpB,EAEPmB,GAAMtB,EACNuB,GAAMnB,CACP,CACAkB,GAAMrB,EACNsB,GAAMlB,CACP,CACAiB,GAAMpB,EACNqB,GAAMjB,CACP,CAKL,CAKAnB,GAAO,QAAUG,KCvQjB,IAAA2C,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwBA,IAAIC,GAAY,KACZC,GAAY,KA4FhB,SAASC,GAAgBC,EAAGC,EAAGC,EAAM,CACpC,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EA8BJ,IAzBAA,EAAInD,GAAWG,EAAE,MAAOA,EAAE,QAASC,EAAE,OAAQ,EAC7CyB,EAAKsB,EAAE,GACPhB,EAAKgB,EAAE,GACPf,EAAKe,EAAE,GAGP7C,EAAQL,GAAWE,EAAE,MAAOC,EAAE,KAAM,EAGpCiC,EAAKlC,EAAE,OACPmC,EAAKlC,EAAE,OAGPG,EAAOJ,EAAE,KACTK,EAAOJ,EAAE,KAGTO,EAAMwB,EAAG,CAAC,EACVnB,EAAMoB,EAAG,CAAC,EAGV3B,EAAMN,EAAE,UAAU,CAAC,EACnBO,EAAMN,EAAE,UAAU,CAAC,EAGb8C,EAAKrB,EAAG,CAAC,EAAGqB,EAAK,GAUtB,IATKA,EAAK5C,GACT4B,EAAKgB,EACLA,EAAK,IAELhB,EAAK5B,EACL4C,GAAM5C,GAEPkB,EAAMa,EAAOa,EAAGf,EAAG,CAAC,EACpBP,EAAMU,EAAOY,EAAGd,EAAG,CAAC,EACda,EAAKpB,EAAG,CAAC,EAAGoB,EAAK,GAYtB,IAXKA,EAAK3C,GACT2B,EAAKgB,EACLA,EAAK,IAELhB,EAAK3B,EACL2C,GAAM3C,GAEPS,EAAMoB,EAAG,CAAC,EAAMF,EAAGE,EAAG,CAAC,EACvBf,EAAMgB,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBb,EAAMC,EAAQyB,EAAGd,EAAG,CAAC,EACrBR,EAAMC,EAAQqB,EAAGb,EAAG,CAAC,EACfY,EAAKnB,EAAG,CAAC,EAAGmB,EAAK,GAYtB,IAXKA,EAAK1C,GACT0B,EAAKgB,EACLA,EAAK,IAELhB,EAAK1B,EACL0C,GAAM1C,GAEPQ,EAAMqB,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBhB,EAAMiB,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EACvBd,EAAMC,EAAQyB,EAAGb,EAAG,CAAC,EACrBT,EAAMC,EAAQqB,EAAGZ,EAAG,CAAC,EACfW,EAAKlB,EAAG,CAAC,EAAGkB,EAAK,GAYtB,IAXKA,EAAKzC,GACTyB,EAAKgB,EACLA,EAAK,IAELhB,EAAKzB,EACLyC,GAAMzC,GAEPO,EAAMsB,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EACvBjB,EAAMkB,EAAG,CAAC,EAAML,EAAGK,EAAG,CAAC,EACvBf,EAAMC,EAAQyB,EAAGZ,EAAG,CAAC,EACrBV,EAAMC,EAAQqB,EAAGX,EAAG,CAAC,EACfU,EAAKjB,EAAG,CAAC,EAAGiB,EAAK,GAiBtB,IAhBKA,EAAKxC,GACTwB,EAAKgB,EACLA,EAAK,IAELhB,EAAKxB,EACLwC,GAAMxC,GAGPiC,EAAKlB,EAAQyB,EAAGX,EAAG,CAAC,EACpBK,EAAKf,EAAQqB,EAAGV,EAAG,CAAC,EAGpBxB,EAAMuB,EAAG,CAAC,EAAML,EAAGK,EAAG,CAAC,EACvBlB,EAAMmB,EAAG,CAAC,EAAMN,EAAGM,EAAG,CAAC,EAGjBS,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IACtB/B,EAAKF,EAAMgC,EAAInC,EAAKI,EAAKF,EAAMgC,CAAG,CAAE,CAAE,EACtCA,GAAM5B,EACN6B,GAAMxB,EAEPuB,GAAM3B,EACN4B,GAAMvB,CACP,CACAsB,GAAM1B,EACN2B,GAAMtB,CACP,CACAqB,GAAMzB,EACN0B,GAAMrB,CACP,CACAoB,GAAMxB,EACNyB,GAAMpB,CACP,CAMN,CAKArB,GAAO,QAAUG,KC/RjB,IAAAkD,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwBA,IAAIC,GAAY,KACZC,GAAY,KA4FhB,SAASC,GAAgBC,EAAGC,EAAGC,EAAM,CACpC,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GACAC,GACAC,GA8BJ,IAzBAA,GAAI1D,GAAWG,EAAE,MAAOA,EAAE,QAASC,EAAE,OAAQ,EAC7C6B,EAAKyB,GAAE,GACPlB,EAAKkB,GAAE,GACPjB,EAAKiB,GAAE,GAGPpD,EAAQL,GAAWE,EAAE,MAAOC,EAAE,KAAM,EAGpCsC,EAAKvC,EAAE,OACPwC,EAAKvC,EAAE,OAGPG,EAAOJ,EAAE,KACTK,EAAOJ,EAAE,KAGTO,EAAM6B,EAAG,CAAC,EACVvB,EAAMwB,EAAG,CAAC,EAGVhC,EAAMN,EAAE,UAAU,CAAC,EACnBO,EAAMN,EAAE,UAAU,CAAC,EAGbqD,GAAKxB,EAAG,CAAC,EAAGwB,GAAK,GAUtB,IATKA,GAAKnD,GACTiC,EAAKkB,GACLA,GAAK,IAELlB,EAAKjC,EACLmD,IAAMnD,GAEPqB,EAAMe,EAAOe,GAAGjB,EAAG,CAAC,EACpBR,EAAMW,EAAOc,GAAGhB,EAAG,CAAC,EACde,GAAKvB,EAAG,CAAC,EAAGuB,GAAK,GAYtB,IAXKA,GAAKlD,GACTgC,EAAKkB,GACLA,GAAK,IAELlB,EAAKhC,EACLkD,IAAMlD,GAEPU,EAAMwB,EAAG,CAAC,EAAMF,EAAGE,EAAG,CAAC,EACvBlB,EAAMmB,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBf,EAAMC,EAAQ6B,GAAGhB,EAAG,CAAC,EACrBT,EAAMC,EAAQwB,GAAGf,EAAG,CAAC,EACfc,EAAKtB,EAAG,CAAC,EAAGsB,EAAK,GAYtB,IAXKA,EAAKjD,GACT+B,EAAKkB,EACLA,EAAK,IAELlB,EAAK/B,EACLiD,GAAMjD,GAEPS,EAAMyB,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBnB,EAAMoB,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EACvBhB,EAAMC,EAAQ6B,EAAGf,EAAG,CAAC,EACrBV,EAAMC,EAAQwB,EAAGd,EAAG,CAAC,EACfa,EAAKrB,EAAG,CAAC,EAAGqB,EAAK,GAYtB,IAXKA,EAAKhD,GACT8B,EAAKkB,EACLA,EAAK,IAELlB,EAAK9B,EACLgD,GAAMhD,GAEPQ,EAAM0B,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EACvBpB,EAAMqB,EAAG,CAAC,EAAML,EAAGK,EAAG,CAAC,EACvBjB,EAAMC,EAAQ6B,EAAGd,EAAG,CAAC,EACrBX,EAAMC,EAAQwB,EAAGb,EAAG,CAAC,EACfY,EAAKpB,EAAG,CAAC,EAAGoB,EAAK,GAYtB,IAXKA,EAAK/C,GACT6B,EAAKkB,EACLA,EAAK,IAELlB,EAAK7B,EACL+C,GAAM/C,GAEPO,EAAM2B,EAAG,CAAC,EAAML,EAAGK,EAAG,CAAC,EACvBrB,EAAMsB,EAAG,CAAC,EAAMN,EAAGM,EAAG,CAAC,EACvBlB,EAAMC,EAAQ6B,EAAGb,EAAG,CAAC,EACrBZ,EAAMC,EAAQwB,EAAGZ,EAAG,CAAC,EACfW,EAAKnB,EAAG,CAAC,EAAGmB,EAAK,GAiBtB,IAhBKA,EAAK9C,GACT4B,EAAKkB,EACLA,EAAK,IAELlB,EAAK5B,EACL8C,GAAM9C,GAGPsC,EAAKrB,EAAQ6B,EAAGZ,EAAG,CAAC,EACpBK,EAAKjB,EAAQwB,EAAGX,EAAG,CAAC,EAGpB7B,EAAM4B,EAAG,CAAC,EAAMN,EAAGM,EAAG,CAAC,EACvBtB,EAAMuB,EAAG,CAAC,EAAMP,EAAGO,EAAG,CAAC,EAGjBU,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IACtBpC,EAAKF,EAAMqC,EAAIxC,EAAKI,EAAKF,EAAMqC,CAAG,CAAE,CAAE,EACtCA,GAAMjC,EACNkC,GAAM5B,EAEP2B,GAAMhC,EACNiC,GAAM3B,CACP,CACA0B,GAAM/B,EACNgC,GAAM1B,CACP,CACAyB,GAAM9B,EACN+B,GAAMzB,CACP,CACAwB,GAAM7B,EACN8B,GAAMxB,CACP,CACAuB,GAAM5B,EACN6B,GAAMvB,CACP,CAOP,CAKAvB,GAAO,QAAUG,KCvTjB,IAAAyD,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwBA,IAAIC,GAAY,KACZC,GAAY,KA4FhB,SAASC,GAAgBC,EAAGC,EAAGC,EAAM,CACpC,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GA8BJ,IAzBAA,GAAIjE,GAAWG,EAAE,MAAOA,EAAE,QAASC,EAAE,OAAQ,EAC7CiC,EAAK4B,GAAE,GACPpB,EAAKoB,GAAE,GACPnB,EAAKmB,GAAE,GAGP3D,EAAQL,GAAWE,EAAE,MAAOC,EAAE,KAAM,EAGpC2C,EAAK5C,EAAE,OACP6C,EAAK5C,EAAE,OAGPG,EAAOJ,EAAE,KACTK,EAAOJ,EAAE,KAGTO,EAAMkC,EAAG,CAAC,EACV3B,EAAM4B,EAAG,CAAC,EAGVrC,EAAMN,EAAE,UAAU,CAAC,EACnBO,EAAMN,EAAE,UAAU,CAAC,EAGb4D,GAAK3B,EAAG,CAAC,EAAG2B,GAAK,GAUtB,IATKA,GAAK1D,GACTsC,EAAKoB,GACLA,GAAK,IAELpB,EAAKtC,EACL0D,IAAM1D,GAEPwB,EAAMiB,EAAOiB,GAAGnB,EAAG,CAAC,EACpBT,EAAMY,EAAOgB,GAAGlB,EAAG,CAAC,EACdiB,GAAK1B,EAAG,CAAC,EAAG0B,GAAK,GAYtB,IAXKA,GAAKzD,GACTqC,EAAKoB,GACLA,GAAK,IAELpB,EAAKrC,EACLyD,IAAMzD,GAEPW,EAAM4B,EAAG,CAAC,EAAMF,EAAGE,EAAG,CAAC,EACvBrB,EAAMsB,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBjB,EAAMC,EAAQiC,GAAGlB,EAAG,CAAC,EACrBV,EAAMC,EAAQ2B,GAAGjB,EAAG,CAAC,EACfgB,GAAKzB,EAAG,CAAC,EAAGyB,GAAK,GAYtB,IAXKA,GAAKxD,GACToC,EAAKoB,GACLA,GAAK,IAELpB,EAAKpC,EACLwD,IAAMxD,GAEPU,EAAM6B,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBtB,EAAMuB,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EACvBlB,EAAMC,EAAQiC,GAAGjB,EAAG,CAAC,EACrBX,EAAMC,EAAQ2B,GAAGhB,EAAG,CAAC,EACfe,GAAKxB,EAAG,CAAC,EAAGwB,GAAK,GAYtB,IAXKA,GAAKvD,GACTmC,EAAKoB,GACLA,GAAK,IAELpB,EAAKnC,EACLuD,IAAMvD,GAEPS,EAAM8B,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EACvBvB,EAAMwB,EAAG,CAAC,EAAML,EAAGK,EAAG,CAAC,EACvBnB,EAAMC,EAAQiC,GAAGhB,EAAG,CAAC,EACrBZ,EAAMC,EAAQ2B,GAAGf,EAAG,CAAC,EACfc,GAAKvB,EAAG,CAAC,EAAGuB,GAAK,GAYtB,IAXKA,GAAKtD,GACTkC,EAAKoB,GACLA,GAAK,IAELpB,EAAKlC,EACLsD,IAAMtD,GAEPQ,EAAM+B,EAAG,CAAC,EAAML,EAAGK,EAAG,CAAC,EACvBxB,EAAMyB,EAAG,CAAC,EAAMN,EAAGM,EAAG,CAAC,EACvBpB,EAAMC,EAAQiC,GAAGf,EAAG,CAAC,EACrBb,EAAMC,EAAQ2B,GAAGd,EAAG,CAAC,EACfa,GAAKtB,EAAG,CAAC,EAAGsB,GAAK,GAYtB,IAXKA,GAAKrD,GACTiC,EAAKoB,GACLA,GAAK,IAELpB,EAAKjC,EACLqD,IAAMrD,GAEPO,EAAMgC,EAAG,CAAC,EAAMN,EAAGM,EAAG,CAAC,EACvBzB,EAAM0B,EAAG,CAAC,EAAMP,EAAGO,EAAG,CAAC,EACvBrB,EAAMC,EAAQiC,GAAGd,EAAG,CAAC,EACrBd,EAAMC,EAAQ2B,GAAGb,EAAG,CAAC,EACfY,GAAKrB,EAAG,CAAC,EAAGqB,GAAK,GAiBtB,IAhBKA,GAAKpD,GACTgC,EAAKoB,GACLA,GAAK,IAELpB,EAAKhC,EACLoD,IAAMpD,GAGP2C,EAAKxB,EAAQiC,GAAGb,EAAG,CAAC,EACpBK,EAAKnB,EAAQ2B,GAAGZ,EAAG,CAAC,EAGpBlC,EAAMiC,EAAG,CAAC,EAAMP,EAAGO,EAAG,CAAC,EACvB1B,EAAM2B,EAAG,CAAC,EAAMR,EAAGQ,EAAG,CAAC,EAGjBW,GAAK,EAAGA,GAAKb,EAAIa,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKb,EAAIa,KAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IACtBzC,EAAKF,EAAM0C,EAAI7C,EAAKI,EAAKF,EAAM0C,CAAG,CAAE,CAAE,EACtCA,GAAMtC,EACNuC,GAAMhC,EAEP+B,GAAMrC,EACNsC,GAAM/B,CACP,CACA8B,GAAMpC,EACNqC,GAAM9B,CACP,CACA6B,GAAMnC,EACNoC,GAAM7B,CACP,CACA4B,GAAMlC,EACNmC,GAAM5B,CACP,CACA2B,GAAMjC,EACNkC,GAAM3B,CACP,CACA0B,GAAMhC,EACNiC,GAAM1B,CACP,CAQR,CAKAzB,GAAO,QAAUG,KC/UjB,IAAAgE,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwBA,IAAIC,GAAY,KACZC,GAAY,KA4FhB,SAASC,GAAgBC,EAAGC,EAAGC,EAAM,CACpC,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GA8BJ,IAzBAA,GAAIxE,GAAWG,EAAE,MAAOA,EAAE,QAASC,EAAE,OAAQ,EAC7CqC,EAAK+B,GAAE,GACPtB,EAAKsB,GAAE,GACPrB,EAAKqB,GAAE,GAGPlE,EAAQL,GAAWE,EAAE,MAAOC,EAAE,KAAM,EAGpCgD,EAAKjD,EAAE,OACPkD,EAAKjD,EAAE,OAGPG,EAAOJ,EAAE,KACTK,EAAOJ,EAAE,KAGTO,EAAMuC,EAAG,CAAC,EACV/B,EAAMgC,EAAG,CAAC,EAGV1C,EAAMN,EAAE,UAAU,CAAC,EACnBO,EAAMN,EAAE,UAAU,CAAC,EAGbmE,GAAK9B,EAAG,CAAC,EAAG8B,GAAK,GAUtB,IATKA,GAAKjE,GACT2C,EAAKsB,GACLA,GAAK,IAELtB,EAAK3C,EACLiE,IAAMjE,GAEP2B,EAAMmB,EAAOmB,GAAGrB,EAAG,CAAC,EACpBV,EAAMa,EAAOkB,GAAGpB,EAAG,CAAC,EACdmB,GAAK7B,EAAG,CAAC,EAAG6B,GAAK,GAYtB,IAXKA,GAAKhE,GACT0C,EAAKsB,GACLA,GAAK,IAELtB,EAAK1C,EACLgE,IAAMhE,GAEPY,EAAMgC,EAAG,CAAC,EAAMF,EAAGE,EAAG,CAAC,EACvBxB,EAAMyB,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBnB,EAAMC,EAAQqC,GAAGpB,EAAG,CAAC,EACrBX,EAAMC,EAAQ8B,GAAGnB,EAAG,CAAC,EACfkB,GAAK5B,EAAG,CAAC,EAAG4B,GAAK,GAYtB,IAXKA,GAAK/D,GACTyC,EAAKsB,GACLA,GAAK,IAELtB,EAAKzC,EACL+D,IAAM/D,GAEPW,EAAMiC,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBzB,EAAM0B,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EACvBpB,EAAMC,EAAQqC,GAAGnB,EAAG,CAAC,EACrBZ,EAAMC,EAAQ8B,GAAGlB,EAAG,CAAC,EACfiB,GAAK3B,EAAG,CAAC,EAAG2B,GAAK,GAYtB,IAXKA,GAAK9D,GACTwC,EAAKsB,GACLA,GAAK,IAELtB,EAAKxC,EACL8D,IAAM9D,GAEPU,EAAMkC,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EACvB1B,EAAM2B,EAAG,CAAC,EAAML,EAAGK,EAAG,CAAC,EACvBrB,EAAMC,EAAQqC,GAAGlB,EAAG,CAAC,EACrBb,EAAMC,EAAQ8B,GAAGjB,EAAG,CAAC,EACfgB,GAAK1B,EAAG,CAAC,EAAG0B,GAAK,GAYtB,IAXKA,GAAK7D,GACTuC,EAAKsB,GACLA,GAAK,IAELtB,EAAKvC,EACL6D,IAAM7D,GAEPS,EAAMmC,EAAG,CAAC,EAAML,EAAGK,EAAG,CAAC,EACvB3B,EAAM4B,EAAG,CAAC,EAAMN,EAAGM,EAAG,CAAC,EACvBtB,EAAMC,EAAQqC,GAAGjB,EAAG,CAAC,EACrBd,EAAMC,EAAQ8B,GAAGhB,EAAG,CAAC,EACfe,GAAKzB,EAAG,CAAC,EAAGyB,GAAK,GAYtB,IAXKA,GAAK5D,GACTsC,EAAKsB,GACLA,GAAK,IAELtB,EAAKtC,EACL4D,IAAM5D,GAEPQ,EAAMoC,EAAG,CAAC,EAAMN,EAAGM,EAAG,CAAC,EACvB5B,EAAM6B,EAAG,CAAC,EAAMP,EAAGO,EAAG,CAAC,EACvBvB,EAAMC,EAAQqC,GAAGhB,EAAG,CAAC,EACrBf,EAAMC,EAAQ8B,GAAGf,EAAG,CAAC,EACfc,GAAKxB,EAAG,CAAC,EAAGwB,GAAK,GAYtB,IAXKA,GAAK3D,GACTqC,EAAKsB,GACLA,GAAK,IAELtB,EAAKrC,EACL2D,IAAM3D,GAEPO,EAAMqC,EAAG,CAAC,EAAMP,EAAGO,EAAG,CAAC,EACvB7B,EAAM8B,EAAG,CAAC,EAAMR,EAAGQ,EAAG,CAAC,EACvBxB,EAAMC,EAAQqC,GAAGf,EAAG,CAAC,EACrBhB,EAAMC,EAAQ8B,GAAGd,EAAG,CAAC,EACfa,GAAKvB,EAAG,CAAC,EAAGuB,GAAK,GAiBtB,IAhBKA,GAAK1D,GACToC,EAAKsB,GACLA,GAAK,IAELtB,EAAKpC,EACL0D,IAAM1D,GAGPgD,EAAK3B,EAAQqC,GAAGd,EAAG,CAAC,EACpBK,EAAKrB,EAAQ8B,GAAGb,EAAG,CAAC,EAGpBvC,EAAMsC,EAAG,CAAC,EAAMR,EAAGQ,EAAG,CAAC,EACvB9B,EAAM+B,EAAG,CAAC,EAAMT,EAAGS,EAAG,CAAC,EAGjBY,GAAK,EAAGA,GAAKd,EAAIc,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKd,EAAIc,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKd,EAAIc,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKd,EAAIc,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKd,EAAIc,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKd,EAAIc,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKd,EAAIc,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKd,EAAIc,KACtB9C,EAAKF,EAAM+C,EAAIlD,EAAKI,EAAKF,EAAM+C,CAAG,CAAE,CAAE,EACtCA,GAAM3C,EACN4C,GAAMpC,EAEPmC,GAAM1C,EACN2C,GAAMnC,CACP,CACAkC,GAAMzC,EACN0C,GAAMlC,CACP,CACAiC,GAAMxC,EACNyC,GAAMjC,CACP,CACAgC,GAAMvC,EACNwC,GAAMhC,CACP,CACA+B,GAAMtC,EACNuC,GAAM/B,CACP,CACA8B,GAAMrC,EACNsC,GAAM9B,CACP,CACA6B,GAAMpC,EACNqC,GAAM7B,CACP,CAST,CAKA3B,GAAO,QAAUG,KCvWjB,IAAAuE,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwBA,IAAIC,GAAY,KACZC,GAAY,KA4FhB,SAASC,GAAgBC,EAAGC,EAAGC,EAAM,CACpC,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GA8BJ,IAzBAA,GAAI/E,GAAWG,EAAE,MAAOA,EAAE,QAASC,EAAE,OAAQ,EAC7CyC,EAAKkC,GAAE,GACPxB,EAAKwB,GAAE,GACPvB,GAAKuB,GAAE,GAGPzE,EAAQL,GAAWE,EAAE,MAAOC,EAAE,KAAM,EAGpCqD,GAAKtD,EAAE,OACPuD,GAAKtD,EAAE,OAGPG,EAAOJ,EAAE,KACTK,EAAOJ,EAAE,KAGTO,EAAM4C,EAAG,CAAC,EACVnC,EAAMoC,GAAG,CAAC,EAGV/C,EAAMN,EAAE,UAAU,CAAC,EACnBO,EAAMN,EAAE,UAAU,CAAC,EAGb0E,GAAKjC,EAAG,CAAC,EAAGiC,GAAK,GAUtB,IATKA,GAAKxE,GACTgD,EAAKwB,GACLA,GAAK,IAELxB,EAAKhD,EACLwE,IAAMxE,GAEP8B,EAAMqB,GAAOqB,GAAGvB,EAAG,CAAC,EACpBX,EAAMc,GAAOoB,GAAGtB,GAAG,CAAC,EACdqB,GAAKhC,EAAG,CAAC,EAAGgC,GAAK,GAYtB,IAXKA,GAAKvE,GACT+C,EAAKwB,GACLA,GAAK,IAELxB,EAAK/C,EACLuE,IAAMvE,GAEPa,EAAMoC,EAAG,CAAC,EAAMF,EAAGE,EAAG,CAAC,EACvB3B,EAAM4B,GAAG,CAAC,EAAMH,EAAGG,GAAG,CAAC,EACvBrB,EAAMC,EAAQyC,GAAGtB,EAAG,CAAC,EACrBZ,EAAMC,EAAQiC,GAAGrB,GAAG,CAAC,EACfoB,GAAK/B,EAAG,CAAC,EAAG+B,GAAK,GAYtB,IAXKA,GAAKtE,GACT8C,EAAKwB,GACLA,GAAK,IAELxB,EAAK9C,EACLsE,IAAMtE,GAEPY,EAAMqC,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvB5B,EAAM6B,GAAG,CAAC,EAAMJ,EAAGI,GAAG,CAAC,EACvBtB,EAAMC,EAAQyC,GAAGrB,EAAG,CAAC,EACrBb,EAAMC,EAAQiC,GAAGpB,GAAG,CAAC,EACfmB,GAAK9B,EAAG,CAAC,EAAG8B,GAAK,GAYtB,IAXKA,GAAKrE,GACT6C,EAAKwB,GACLA,GAAK,IAELxB,EAAK7C,EACLqE,IAAMrE,GAEPW,EAAMsC,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EACvB7B,EAAM8B,GAAG,CAAC,EAAML,EAAGK,GAAG,CAAC,EACvBvB,EAAMC,EAAQyC,GAAGpB,EAAG,CAAC,EACrBd,EAAMC,EAAQiC,GAAGnB,GAAG,CAAC,EACfkB,GAAK7B,EAAG,CAAC,EAAG6B,GAAK,GAYtB,IAXKA,GAAKpE,GACT4C,EAAKwB,GACLA,GAAK,IAELxB,EAAK5C,EACLoE,IAAMpE,GAEPU,EAAMuC,EAAG,CAAC,EAAML,EAAGK,EAAG,CAAC,EACvB9B,EAAM+B,GAAG,CAAC,EAAMN,EAAGM,GAAG,CAAC,EACvBxB,EAAMC,EAAQyC,GAAGnB,EAAG,CAAC,EACrBf,EAAMC,EAAQiC,GAAGlB,GAAG,CAAC,EACfiB,GAAK5B,EAAG,CAAC,EAAG4B,GAAK,GAYtB,IAXKA,GAAKnE,GACT2C,EAAKwB,GACLA,GAAK,IAELxB,EAAK3C,EACLmE,IAAMnE,GAEPS,EAAMwC,EAAG,CAAC,EAAMN,EAAGM,EAAG,CAAC,EACvB/B,EAAMgC,GAAG,CAAC,EAAMP,EAAGO,GAAG,CAAC,EACvBzB,EAAMC,EAAQyC,GAAGlB,EAAG,CAAC,EACrBhB,EAAMC,EAAQiC,GAAGjB,GAAG,CAAC,EACfgB,GAAK3B,EAAG,CAAC,EAAG2B,GAAK,GAYtB,IAXKA,GAAKlE,GACT0C,EAAKwB,GACLA,GAAK,IAELxB,EAAK1C,EACLkE,IAAMlE,GAEPQ,EAAMyC,EAAG,CAAC,EAAMP,EAAGO,EAAG,CAAC,EACvBhC,EAAMiC,GAAG,CAAC,EAAMR,EAAGQ,GAAG,CAAC,EACvB1B,EAAMC,EAAQyC,GAAGjB,EAAG,CAAC,EACrBjB,EAAMC,EAAQiC,GAAGhB,GAAG,CAAC,EACfe,GAAK1B,EAAG,CAAC,EAAG0B,GAAK,GAYtB,IAXKA,GAAKjE,GACTyC,EAAKwB,GACLA,GAAK,IAELxB,EAAKzC,EACLiE,IAAMjE,GAEPO,EAAM0C,EAAG,CAAC,EAAMR,EAAGQ,EAAG,CAAC,EACvBjC,EAAMkC,GAAG,CAAC,EAAMT,EAAGS,GAAG,CAAC,EACvB3B,EAAMC,EAAQyC,GAAGhB,EAAG,CAAC,EACrBlB,EAAMC,EAAQiC,GAAGf,GAAG,CAAC,EACfc,GAAKzB,EAAG,CAAC,EAAGyB,GAAK,GAiBtB,IAhBKA,GAAKhE,GACTwC,EAAKwB,GACLA,GAAK,IAELxB,EAAKxC,EACLgE,IAAMhE,GAGPqD,GAAK9B,EAAQyC,GAAGf,EAAG,CAAC,EACpBK,GAAKvB,EAAQiC,GAAGd,GAAG,CAAC,EAGpB5C,EAAM2C,EAAG,CAAC,EAAMT,EAAGS,EAAG,CAAC,EACvBlC,EAAMmC,GAAG,CAAC,EAAMV,EAAGU,GAAG,CAAC,EAGjBa,GAAK,EAAGA,GAAKf,EAAIe,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKf,EAAIe,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKf,EAAIe,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKf,EAAIe,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKf,EAAIe,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKf,EAAIe,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKf,EAAIe,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKf,EAAIe,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKf,EAAIe,KACtBnD,EAAKF,EAAMoD,GAAIvD,EAAKI,EAAKF,EAAMoD,EAAG,CAAE,CAAE,EACtCA,IAAMhD,EACNiD,IAAMxC,EAEPuC,IAAM/C,EACNgD,IAAMvC,CACP,CACAsC,IAAM9C,EACN+C,IAAMtC,CACP,CACAqC,IAAM7C,EACN8C,IAAMrC,CACP,CACAoC,IAAM5C,EACN6C,IAAMpC,CACP,CACAmC,IAAM3C,EACN4C,IAAMnC,CACP,CACAkC,IAAM1C,EACN2C,IAAMlC,CACP,CACAiC,IAAMzC,EACN0C,IAAMjC,CACP,CACAgC,IAAMxC,EACNyC,IAAMhC,CACP,CAUV,CAKA7B,GAAO,QAAUG,KC/XjB,IAAA8E,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwBA,IAAIC,GAAY,KACZC,GAAY,KA4FhB,SAASC,GAAiBC,EAAGC,EAAGC,EAAM,CACrC,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GA8BJ,IAzBAA,GAAItF,GAAWG,EAAE,MAAOA,EAAE,QAASC,EAAE,OAAQ,EAC7C6C,EAAKqC,GAAE,GACP1B,GAAK0B,GAAE,GACPzB,GAAKyB,GAAE,GAGPhF,EAAQL,GAAWE,EAAE,MAAOC,EAAE,KAAM,EAGpC0D,GAAK3D,EAAE,OACP4D,GAAK3D,EAAE,OAGPG,EAAOJ,EAAE,KACTK,EAAOJ,EAAE,KAGTO,EAAMiD,GAAG,CAAC,EACVvC,EAAMwC,GAAG,CAAC,EAGVpD,EAAMN,EAAE,UAAU,CAAC,EACnBO,EAAMN,EAAE,UAAU,CAAC,EAGbiF,GAAKpC,EAAG,CAAC,EAAGoC,GAAK,GAUtB,IATKA,GAAK/E,GACTqD,GAAK0B,GACLA,GAAK,IAEL1B,GAAKrD,EACL+E,IAAM/E,GAEPiC,EAAMuB,GAAOuB,GAAGzB,GAAG,CAAC,EACpBZ,EAAMe,GAAOsB,GAAGxB,GAAG,CAAC,EACduB,GAAKnC,EAAG,CAAC,EAAGmC,GAAK,GAYtB,IAXKA,GAAK9E,GACToD,GAAK0B,GACLA,GAAK,IAEL1B,GAAKpD,EACL8E,IAAM9E,GAEPc,EAAMwC,GAAG,CAAC,EAAMF,GAAGE,GAAG,CAAC,EACvB9B,EAAM+B,GAAG,CAAC,EAAMH,GAAGG,GAAG,CAAC,EACvBvB,EAAMC,EAAQ6C,GAAGxB,GAAG,CAAC,EACrBb,EAAMC,EAAQoC,GAAGvB,GAAG,CAAC,EACfsB,GAAKlC,EAAG,CAAC,EAAGkC,GAAK,GAYtB,IAXKA,GAAK7E,GACTmD,GAAK0B,GACLA,GAAK,IAEL1B,GAAKnD,EACL6E,IAAM7E,GAEPa,EAAMyC,GAAG,CAAC,EAAMH,GAAGG,GAAG,CAAC,EACvB/B,EAAMgC,GAAG,CAAC,EAAMJ,GAAGI,GAAG,CAAC,EACvBxB,EAAMC,EAAQ6C,GAAGvB,GAAG,CAAC,EACrBd,EAAMC,EAAQoC,GAAGtB,GAAG,CAAC,EACfqB,GAAKjC,EAAG,CAAC,EAAGiC,GAAK,GAYtB,IAXKA,GAAK5E,GACTkD,GAAK0B,GACLA,GAAK,IAEL1B,GAAKlD,EACL4E,IAAM5E,GAEPY,EAAM0C,GAAG,CAAC,EAAMJ,GAAGI,GAAG,CAAC,EACvBhC,EAAMiC,GAAG,CAAC,EAAML,GAAGK,GAAG,CAAC,EACvBzB,EAAMC,EAAQ6C,GAAGtB,GAAG,CAAC,EACrBf,EAAMC,EAAQoC,GAAGrB,GAAG,CAAC,EACfoB,GAAKhC,EAAG,CAAC,EAAGgC,GAAK,GAYtB,IAXKA,GAAK3E,GACTiD,EAAK0B,GACLA,GAAK,IAEL1B,EAAKjD,EACL2E,IAAM3E,GAEPW,EAAM2C,GAAG,CAAC,EAAML,EAAGK,GAAG,CAAC,EACvBjC,EAAMkC,GAAG,CAAC,EAAMN,EAAGM,GAAG,CAAC,EACvB1B,EAAMC,EAAQ6C,GAAGrB,GAAG,CAAC,EACrBhB,EAAMC,EAAQoC,GAAGpB,GAAG,CAAC,EACfmB,GAAK/B,EAAG,CAAC,EAAG+B,GAAK,GAYtB,IAXKA,GAAK1E,GACTgD,EAAK0B,GACLA,GAAK,IAEL1B,EAAKhD,EACL0E,IAAM1E,GAEPU,EAAM4C,GAAG,CAAC,EAAMN,EAAGM,GAAG,CAAC,EACvBlC,EAAMmC,GAAG,CAAC,EAAMP,EAAGO,GAAG,CAAC,EACvB3B,EAAMC,EAAQ6C,GAAGpB,GAAG,CAAC,EACrBjB,EAAMC,EAAQoC,GAAGnB,GAAG,CAAC,EACfkB,GAAK9B,EAAG,CAAC,EAAG8B,GAAK,GAYtB,IAXKA,GAAKzE,GACT+C,EAAK0B,GACLA,GAAK,IAEL1B,EAAK/C,EACLyE,IAAMzE,GAEPS,EAAM6C,GAAG,CAAC,EAAMP,EAAGO,GAAG,CAAC,EACvBnC,EAAMoC,GAAG,CAAC,EAAMR,EAAGQ,GAAG,CAAC,EACvB5B,EAAMC,EAAQ6C,GAAGnB,GAAG,CAAC,EACrBlB,EAAMC,EAAQoC,GAAGlB,GAAG,CAAC,EACfiB,GAAK7B,EAAG,CAAC,EAAG6B,GAAK,GAYtB,IAXKA,GAAKxE,GACT8C,EAAK0B,GACLA,GAAK,IAEL1B,EAAK9C,EACLwE,IAAMxE,GAEPQ,EAAM8C,GAAG,CAAC,EAAMR,EAAGQ,GAAG,CAAC,EACvBpC,EAAMqC,GAAG,CAAC,EAAMT,EAAGS,GAAG,CAAC,EACvB7B,EAAMC,EAAQ6C,GAAGlB,GAAG,CAAC,EACrBnB,EAAMC,EAAQoC,GAAGjB,GAAG,CAAC,EACfgB,GAAK5B,EAAG,CAAC,EAAG4B,GAAK,GAYtB,IAXKA,GAAKvE,GACT6C,EAAK0B,GACLA,GAAK,IAEL1B,EAAK7C,EACLuE,IAAMvE,GAEPO,EAAM+C,GAAG,CAAC,EAAMT,EAAGS,GAAG,CAAC,EACvBrC,EAAMsC,GAAG,CAAC,EAAMV,EAAGU,GAAG,CAAC,EACvB9B,EAAMC,EAAQ6C,GAAGjB,GAAG,CAAC,EACrBpB,EAAMC,EAAQoC,GAAGhB,GAAG,CAAC,EACfe,GAAK3B,EAAG,CAAC,EAAG2B,GAAK,GAiBtB,IAhBKA,GAAKtE,GACT4C,EAAK0B,GACLA,GAAK,IAEL1B,EAAK5C,EACLsE,IAAMtE,GAGP0D,GAAKjC,EAAQ6C,GAAGhB,GAAG,CAAC,EACpBK,GAAKzB,EAAQoC,GAAGf,GAAG,CAAC,EAGpBjD,EAAMgD,GAAG,CAAC,EAAMV,EAAGU,GAAG,CAAC,EACvBtC,EAAMuC,GAAG,CAAC,EAAMX,EAAGW,GAAG,CAAC,EAGjBc,GAAK,EAAGA,GAAKhB,GAAIgB,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKhB,GAAIgB,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKhB,GAAIgB,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKhB,GAAIgB,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKhB,EAAIgB,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKhB,EAAIgB,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKhB,EAAIgB,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKhB,EAAIgB,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKhB,EAAIgB,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKhB,EAAIgB,KACtBxD,EAAKF,EAAMyD,GAAI5D,EAAKI,EAAKF,EAAMyD,EAAG,CAAE,CAAE,EACtCA,IAAMrD,EACNsD,IAAM5C,EAEP2C,IAAMpD,EACNqD,IAAM3C,CACP,CACA0C,IAAMnD,EACNoD,IAAM1C,CACP,CACAyC,IAAMlD,EACNmD,IAAMzC,CACP,CACAwC,IAAMjD,EACNkD,IAAMxC,CACP,CACAuC,IAAMhD,EACNiD,IAAMvC,CACP,CACAsC,IAAM/C,EACNgD,IAAMtC,CACP,CACAqC,IAAM9C,EACN+C,IAAMrC,CACP,CACAoC,IAAM7C,EACN8C,IAAMpC,CACP,CACAmC,IAAM5C,EACN6C,IAAMnC,CACP,CAWX,CAKA/B,GAAO,QAAUG,KCvZjB,IAAAqF,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAsBA,IAAIC,GAAY,KACZC,GAAY,KAuEhB,SAASC,GAAgBC,EAAGC,EAAGC,EAAM,CACpC,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EA0BJ,IArBAA,EAAI5B,GAAWG,EAAE,MAAOA,EAAE,QAASC,EAAE,OAAQ,EAC7CW,EAAKa,EAAE,GACPV,EAAKU,EAAE,GACPT,EAAKS,EAAE,GAGPtB,EAAQL,GAAWE,EAAE,MAAOC,EAAE,KAAM,EAGpCgB,EAAKjB,EAAE,OACPkB,EAAKjB,EAAE,OAGPG,EAAOJ,EAAE,KACTK,EAAOJ,EAAE,KAGTK,EAAMS,EAAG,CAAC,EACVP,EAAMQ,EAAG,CAAC,EAGJQ,EAAKZ,EAAG,CAAC,EAAGY,EAAK,GAUtB,IATKA,EAAKrB,GACTW,EAAKU,EACLA,EAAK,IAELV,EAAKX,EACLqB,GAAMrB,GAEPO,EAAMO,EAAOO,EAAGT,EAAG,CAAC,EACpBJ,EAAMO,EAAOM,EAAGR,EAAG,CAAC,EACdO,EAAKX,EAAG,CAAC,EAAGW,EAAK,GAiBtB,IAhBKA,EAAKpB,GACTU,EAAKU,EACLA,EAAK,IAELV,EAAKV,EACLoB,GAAMpB,GAGPgB,EAAKT,EAAQa,EAAGR,EAAG,CAAC,EACpBK,EAAKT,EAAQY,EAAGP,EAAG,CAAC,EAGpBT,EAAMQ,EAAG,CAAC,EAAMF,EAAGE,EAAG,CAAC,EACvBN,EAAMO,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EAGjBM,EAAK,EAAGA,EAAKR,EAAIQ,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKR,EAAIQ,IACtBhB,EAAMe,CAAG,EAAIlB,EAAKE,EAAMe,CAAG,CAAE,EAC7BA,GAAMb,EACNc,GAAMZ,EAEPW,GAAMZ,EACNa,GAAMX,CACP,CAGH,CAKAb,GAAO,QAAUG,KC1LjB,IAAA2B,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwBA,IAAIC,GAAY,KACZC,GAAY,KAuEhB,SAASC,GAAgBC,EAAGC,EAAGC,EAAM,CACpC,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EA0BJ,IArBAA,EAAInC,GAAWG,EAAE,MAAOA,EAAE,QAASC,EAAE,OAAQ,EAC7Ce,EAAKgB,EAAE,GACPZ,EAAKY,EAAE,GACPX,EAAKW,EAAE,GAGP7B,EAAQL,GAAWE,EAAE,MAAOC,EAAE,KAAM,EAGpCqB,EAAKtB,EAAE,OACPuB,EAAKtB,EAAE,OAGPG,EAAOJ,EAAE,KACTK,EAAOJ,EAAE,KAGTK,EAAMc,EAAG,CAAC,EACVX,EAAMY,EAAG,CAAC,EAGJU,EAAKf,EAAG,CAAC,EAAGe,EAAK,GAUtB,IATKA,EAAK5B,GACTgB,EAAKY,EACLA,EAAK,IAELZ,EAAKhB,EACL4B,GAAM5B,GAEPU,EAAMS,EAAOS,EAAGX,EAAG,CAAC,EACpBL,EAAMQ,EAAOQ,EAAGV,EAAG,CAAC,EACdS,EAAKd,EAAG,CAAC,EAAGc,EAAK,GAYtB,IAXKA,EAAK3B,GACTe,EAAKY,EACLA,EAAK,IAELZ,EAAKf,EACL2B,GAAM3B,GAEPK,EAAMY,EAAG,CAAC,EAAMF,EAAGE,EAAG,CAAC,EACvBT,EAAMU,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBT,EAAMC,EAAQiB,EAAGV,EAAG,CAAC,EACrBN,EAAMC,EAAQe,EAAGT,EAAG,CAAC,EACfQ,EAAKb,EAAG,CAAC,EAAGa,EAAK,GAiBtB,IAhBKA,EAAK1B,GACTc,EAAKY,EACLA,EAAK,IAELZ,EAAKd,EACL0B,GAAM1B,GAGPqB,EAAKZ,EAAQiB,EAAGT,EAAG,CAAC,EACpBK,EAAKX,EAAQe,EAAGR,EAAG,CAAC,EAGpBd,EAAMa,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBV,EAAMW,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EAGjBO,EAAK,EAAGA,EAAKT,EAAIS,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKT,EAAIS,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKT,EAAIS,IACtBrB,EAAMoB,CAAG,EAAIvB,EAAKE,EAAMoB,CAAG,CAAE,EAC7BA,GAAMlB,EACNmB,GAAMhB,EAEPe,GAAMjB,EACNkB,GAAMf,CACP,CACAc,GAAMhB,EACNiB,GAAMd,CACP,CAIJ,CAKAf,GAAO,QAAUG,KCpNjB,IAAAkC,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwBA,IAAIC,GAAY,KACZC,GAAY,KAuEhB,SAASC,GAAgBC,EAAGC,EAAGC,EAAM,CACpC,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EA0BJ,IArBAA,EAAI1C,GAAWG,EAAE,MAAOA,EAAE,QAASC,EAAE,OAAQ,EAC7CmB,EAAKmB,EAAE,GACPd,EAAKc,EAAE,GACPb,EAAKa,EAAE,GAGPpC,EAAQL,GAAWE,EAAE,MAAOC,EAAE,KAAM,EAGpC0B,EAAK3B,EAAE,OACP4B,EAAK3B,EAAE,OAGPG,EAAOJ,EAAE,KACTK,EAAOJ,EAAE,KAGTK,EAAMmB,EAAG,CAAC,EACVf,EAAMgB,EAAG,CAAC,EAGJY,EAAKlB,EAAG,CAAC,EAAGkB,EAAK,GAUtB,IATKA,EAAKnC,GACTqB,EAAKc,EACLA,EAAK,IAELd,EAAKrB,EACLmC,GAAMnC,GAEPa,EAAMW,EAAOW,EAAGb,EAAG,CAAC,EACpBN,EAAMS,EAAOU,EAAGZ,EAAG,CAAC,EACdW,EAAKjB,EAAG,CAAC,EAAGiB,EAAK,GAYtB,IAXKA,EAAKlC,GACToB,EAAKc,EACLA,EAAK,IAELd,EAAKpB,EACLkC,GAAMlC,GAEPM,EAAMgB,EAAG,CAAC,EAAMF,EAAGE,EAAG,CAAC,EACvBZ,EAAMa,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBX,EAAMC,EAAQqB,EAAGZ,EAAG,CAAC,EACrBP,EAAMC,EAAQkB,EAAGX,EAAG,CAAC,EACfU,EAAKhB,EAAG,CAAC,EAAGgB,EAAK,GAYtB,IAXKA,EAAKjC,GACTmB,EAAKc,EACLA,EAAK,IAELd,EAAKnB,EACLiC,GAAMjC,GAEPK,EAAMiB,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBb,EAAMc,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EACvBZ,EAAMC,EAAQqB,EAAGX,EAAG,CAAC,EACrBR,EAAMC,EAAQkB,EAAGV,EAAG,CAAC,EACfS,EAAKf,EAAG,CAAC,EAAGe,EAAK,GAiBtB,IAhBKA,EAAKhC,GACTkB,EAAKc,EACLA,EAAK,IAELd,EAAKlB,EACLgC,GAAMhC,GAGP0B,EAAKf,EAAQqB,EAAGV,EAAG,CAAC,EACpBK,EAAKb,EAAQkB,EAAGT,EAAG,CAAC,EAGpBnB,EAAMkB,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EACvBd,EAAMe,EAAG,CAAC,EAAML,EAAGK,EAAG,CAAC,EAGjBQ,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IACtB1B,EAAMyB,CAAG,EAAI5B,EAAKE,EAAMyB,CAAG,CAAE,EAC7BA,GAAMvB,EACNwB,GAAMpB,EAEPmB,GAAMtB,EACNuB,GAAMnB,CACP,CACAkB,GAAMrB,EACNsB,GAAMlB,CACP,CACAiB,GAAMpB,EACNqB,GAAMjB,CACP,CAKL,CAKAjB,GAAO,QAAUG,KC5OjB,IAAAyC,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwBA,IAAIC,GAAY,KACZC,GAAY,KAuEhB,SAASC,GAAgBC,EAAGC,EAAGC,EAAM,CACpC,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EA0BJ,IArBAA,EAAIjD,GAAWG,EAAE,MAAOA,EAAE,QAASC,EAAE,OAAQ,EAC7CuB,EAAKsB,EAAE,GACPhB,EAAKgB,EAAE,GACPf,EAAKe,EAAE,GAGP3C,EAAQL,GAAWE,EAAE,MAAOC,EAAE,KAAM,EAGpC+B,EAAKhC,EAAE,OACPiC,EAAKhC,EAAE,OAGPG,EAAOJ,EAAE,KACTK,EAAOJ,EAAE,KAGTK,EAAMwB,EAAG,CAAC,EACVnB,EAAMoB,EAAG,CAAC,EAGJc,EAAKrB,EAAG,CAAC,EAAGqB,EAAK,GAUtB,IATKA,EAAK1C,GACT0B,EAAKgB,EACLA,EAAK,IAELhB,EAAK1B,EACL0C,GAAM1C,GAEPgB,EAAMa,EAAOa,EAAGf,EAAG,CAAC,EACpBP,EAAMU,EAAOY,EAAGd,EAAG,CAAC,EACda,EAAKpB,EAAG,CAAC,EAAGoB,EAAK,GAYtB,IAXKA,EAAKzC,GACTyB,EAAKgB,EACLA,EAAK,IAELhB,EAAKzB,EACLyC,GAAMzC,GAEPO,EAAMoB,EAAG,CAAC,EAAMF,EAAGE,EAAG,CAAC,EACvBf,EAAMgB,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBb,EAAMC,EAAQyB,EAAGd,EAAG,CAAC,EACrBR,EAAMC,EAAQqB,EAAGb,EAAG,CAAC,EACfY,EAAKnB,EAAG,CAAC,EAAGmB,EAAK,GAYtB,IAXKA,EAAKxC,GACTwB,EAAKgB,EACLA,EAAK,IAELhB,EAAKxB,EACLwC,GAAMxC,GAEPM,EAAMqB,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBhB,EAAMiB,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EACvBd,EAAMC,EAAQyB,EAAGb,EAAG,CAAC,EACrBT,EAAMC,EAAQqB,EAAGZ,EAAG,CAAC,EACfW,EAAKlB,EAAG,CAAC,EAAGkB,EAAK,GAYtB,IAXKA,EAAKvC,GACTuB,EAAKgB,EACLA,EAAK,IAELhB,EAAKvB,EACLuC,GAAMvC,GAEPK,EAAMsB,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EACvBjB,EAAMkB,EAAG,CAAC,EAAML,EAAGK,EAAG,CAAC,EACvBf,EAAMC,EAAQyB,EAAGZ,EAAG,CAAC,EACrBV,EAAMC,EAAQqB,EAAGX,EAAG,CAAC,EACfU,EAAKjB,EAAG,CAAC,EAAGiB,EAAK,GAiBtB,IAhBKA,EAAKtC,GACTsB,EAAKgB,EACLA,EAAK,IAELhB,EAAKtB,EACLsC,GAAMtC,GAGP+B,EAAKlB,EAAQyB,EAAGX,EAAG,CAAC,EACpBK,EAAKf,EAAQqB,EAAGV,EAAG,CAAC,EAGpBxB,EAAMuB,EAAG,CAAC,EAAML,EAAGK,EAAG,CAAC,EACvBlB,EAAMmB,EAAG,CAAC,EAAMN,EAAGM,EAAG,CAAC,EAGjBS,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IACtB/B,EAAM8B,CAAG,EAAIjC,EAAKE,EAAM8B,CAAG,CAAE,EAC7BA,GAAM5B,EACN6B,GAAMxB,EAEPuB,GAAM3B,EACN4B,GAAMvB,CACP,CACAsB,GAAM1B,EACN2B,GAAMtB,CACP,CACAqB,GAAMzB,EACN0B,GAAMrB,CACP,CACAoB,GAAMxB,EACNyB,GAAMpB,CACP,CAMN,CAKAnB,GAAO,QAAUG,KCpQjB,IAAAgD,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwBA,IAAIC,GAAY,KACZC,GAAY,KAuEhB,SAASC,GAAgBC,EAAGC,EAAGC,EAAM,CACpC,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GA0BJ,IArBAA,GAAIxD,GAAWG,EAAE,MAAOA,EAAE,QAASC,EAAE,OAAQ,EAC7C2B,EAAKyB,GAAE,GACPlB,EAAKkB,GAAE,GACPjB,EAAKiB,GAAE,GAGPlD,EAAQL,GAAWE,EAAE,MAAOC,EAAE,KAAM,EAGpCoC,EAAKrC,EAAE,OACPsC,EAAKrC,EAAE,OAGPG,EAAOJ,EAAE,KACTK,EAAOJ,EAAE,KAGTK,EAAM6B,EAAG,CAAC,EACVvB,EAAMwB,EAAG,CAAC,EAGJgB,EAAKxB,EAAG,CAAC,EAAGwB,EAAK,GAUtB,IATKA,EAAKjD,GACT+B,EAAKkB,EACLA,EAAK,IAELlB,EAAK/B,EACLiD,GAAMjD,GAEPmB,EAAMe,EAAOe,EAAGjB,EAAG,CAAC,EACpBR,EAAMW,EAAOc,EAAGhB,EAAG,CAAC,EACde,EAAKvB,EAAG,CAAC,EAAGuB,EAAK,GAYtB,IAXKA,EAAKhD,GACT8B,EAAKkB,EACLA,EAAK,IAELlB,EAAK9B,EACLgD,GAAMhD,GAEPQ,EAAMwB,EAAG,CAAC,EAAMF,EAAGE,EAAG,CAAC,EACvBlB,EAAMmB,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBf,EAAMC,EAAQ6B,EAAGhB,EAAG,CAAC,EACrBT,EAAMC,EAAQwB,EAAGf,EAAG,CAAC,EACfc,EAAKtB,EAAG,CAAC,EAAGsB,EAAK,GAYtB,IAXKA,EAAK/C,GACT6B,EAAKkB,EACLA,EAAK,IAELlB,EAAK7B,EACL+C,GAAM/C,GAEPO,EAAMyB,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBnB,EAAMoB,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EACvBhB,EAAMC,EAAQ6B,EAAGf,EAAG,CAAC,EACrBV,EAAMC,EAAQwB,EAAGd,EAAG,CAAC,EACfa,EAAKrB,EAAG,CAAC,EAAGqB,EAAK,GAYtB,IAXKA,EAAK9C,GACT4B,EAAKkB,EACLA,EAAK,IAELlB,EAAK5B,EACL8C,GAAM9C,GAEPM,EAAM0B,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EACvBpB,EAAMqB,EAAG,CAAC,EAAML,EAAGK,EAAG,CAAC,EACvBjB,EAAMC,EAAQ6B,EAAGd,EAAG,CAAC,EACrBX,EAAMC,EAAQwB,EAAGb,EAAG,CAAC,EACfY,EAAKpB,EAAG,CAAC,EAAGoB,EAAK,GAYtB,IAXKA,EAAK7C,GACT2B,EAAKkB,EACLA,EAAK,IAELlB,EAAK3B,EACL6C,GAAM7C,GAEPK,EAAM2B,EAAG,CAAC,EAAML,EAAGK,EAAG,CAAC,EACvBrB,EAAMsB,EAAG,CAAC,EAAMN,EAAGM,EAAG,CAAC,EACvBlB,EAAMC,EAAQ6B,EAAGb,EAAG,CAAC,EACrBZ,EAAMC,EAAQwB,EAAGZ,EAAG,CAAC,EACfW,EAAKnB,EAAG,CAAC,EAAGmB,EAAK,GAiBtB,IAhBKA,EAAK5C,GACT0B,EAAKkB,EACLA,EAAK,IAELlB,EAAK1B,EACL4C,GAAM5C,GAGPoC,EAAKrB,EAAQ6B,EAAGZ,EAAG,CAAC,EACpBK,EAAKjB,EAAQwB,EAAGX,EAAG,CAAC,EAGpB7B,EAAM4B,EAAG,CAAC,EAAMN,EAAGM,EAAG,CAAC,EACvBtB,EAAMuB,EAAG,CAAC,EAAMP,EAAGO,EAAG,CAAC,EAGjBU,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IACtBpC,EAAMmC,CAAG,EAAItC,EAAKE,EAAMmC,CAAG,CAAE,EAC7BA,GAAMjC,EACNkC,GAAM5B,EAEP2B,GAAMhC,EACNiC,GAAM3B,CACP,CACA0B,GAAM/B,EACNgC,GAAM1B,CACP,CACAyB,GAAM9B,EACN+B,GAAMzB,CACP,CACAwB,GAAM7B,EACN8B,GAAMxB,CACP,CACAuB,GAAM5B,EACN6B,GAAMvB,CACP,CAOP,CAKArB,GAAO,QAAUG,KC5RjB,IAAAuD,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwBA,IAAIC,GAAY,KACZC,GAAY,KAuEhB,SAASC,GAAgBC,EAAGC,EAAGC,EAAM,CACpC,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GA0BJ,IArBAA,GAAI/D,GAAWG,EAAE,MAAOA,EAAE,QAASC,EAAE,OAAQ,EAC7C+B,EAAK4B,GAAE,GACPpB,EAAKoB,GAAE,GACPnB,EAAKmB,GAAE,GAGPzD,EAAQL,GAAWE,EAAE,MAAOC,EAAE,KAAM,EAGpCyC,EAAK1C,EAAE,OACP2C,EAAK1C,EAAE,OAGPG,EAAOJ,EAAE,KACTK,EAAOJ,EAAE,KAGTK,EAAMkC,EAAG,CAAC,EACV3B,EAAM4B,EAAG,CAAC,EAGJkB,GAAK3B,EAAG,CAAC,EAAG2B,GAAK,GAUtB,IATKA,GAAKxD,GACToC,EAAKoB,GACLA,GAAK,IAELpB,EAAKpC,EACLwD,IAAMxD,GAEPsB,EAAMiB,EAAOiB,GAAGnB,EAAG,CAAC,EACpBT,EAAMY,EAAOgB,GAAGlB,EAAG,CAAC,EACdiB,GAAK1B,EAAG,CAAC,EAAG0B,GAAK,GAYtB,IAXKA,GAAKvD,GACTmC,EAAKoB,GACLA,GAAK,IAELpB,EAAKnC,EACLuD,IAAMvD,GAEPS,EAAM4B,EAAG,CAAC,EAAMF,EAAGE,EAAG,CAAC,EACvBrB,EAAMsB,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBjB,EAAMC,EAAQiC,GAAGlB,EAAG,CAAC,EACrBV,EAAMC,EAAQ2B,GAAGjB,EAAG,CAAC,EACfgB,GAAKzB,EAAG,CAAC,EAAGyB,GAAK,GAYtB,IAXKA,GAAKtD,GACTkC,EAAKoB,GACLA,GAAK,IAELpB,EAAKlC,EACLsD,IAAMtD,GAEPQ,EAAM6B,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBtB,EAAMuB,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EACvBlB,EAAMC,EAAQiC,GAAGjB,EAAG,CAAC,EACrBX,EAAMC,EAAQ2B,GAAGhB,EAAG,CAAC,EACfe,GAAKxB,EAAG,CAAC,EAAGwB,GAAK,GAYtB,IAXKA,GAAKrD,GACTiC,EAAKoB,GACLA,GAAK,IAELpB,EAAKjC,EACLqD,IAAMrD,GAEPO,EAAM8B,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EACvBvB,EAAMwB,EAAG,CAAC,EAAML,EAAGK,EAAG,CAAC,EACvBnB,EAAMC,EAAQiC,GAAGhB,EAAG,CAAC,EACrBZ,EAAMC,EAAQ2B,GAAGf,EAAG,CAAC,EACfc,GAAKvB,EAAG,CAAC,EAAGuB,GAAK,GAYtB,IAXKA,GAAKpD,GACTgC,EAAKoB,GACLA,GAAK,IAELpB,EAAKhC,EACLoD,IAAMpD,GAEPM,EAAM+B,EAAG,CAAC,EAAML,EAAGK,EAAG,CAAC,EACvBxB,EAAMyB,EAAG,CAAC,EAAMN,EAAGM,EAAG,CAAC,EACvBpB,EAAMC,EAAQiC,GAAGf,EAAG,CAAC,EACrBb,EAAMC,EAAQ2B,GAAGd,EAAG,CAAC,EACfa,GAAKtB,EAAG,CAAC,EAAGsB,GAAK,GAYtB,IAXKA,GAAKnD,GACT+B,EAAKoB,GACLA,GAAK,IAELpB,EAAK/B,EACLmD,IAAMnD,GAEPK,EAAMgC,EAAG,CAAC,EAAMN,EAAGM,EAAG,CAAC,EACvBzB,EAAM0B,EAAG,CAAC,EAAMP,EAAGO,EAAG,CAAC,EACvBrB,EAAMC,EAAQiC,GAAGd,EAAG,CAAC,EACrBd,EAAMC,EAAQ2B,GAAGb,EAAG,CAAC,EACfY,GAAKrB,EAAG,CAAC,EAAGqB,GAAK,GAiBtB,IAhBKA,GAAKlD,GACT8B,EAAKoB,GACLA,GAAK,IAELpB,EAAK9B,EACLkD,IAAMlD,GAGPyC,EAAKxB,EAAQiC,GAAGb,EAAG,CAAC,EACpBK,EAAKnB,EAAQ2B,GAAGZ,EAAG,CAAC,EAGpBlC,EAAMiC,EAAG,CAAC,EAAMP,EAAGO,EAAG,CAAC,EACvB1B,EAAM2B,EAAG,CAAC,EAAMR,EAAGQ,EAAG,CAAC,EAGjBW,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IACtBzC,EAAMwC,CAAG,EAAI3C,EAAKE,EAAMwC,CAAG,CAAE,EAC7BA,GAAMtC,EACNuC,GAAMhC,EAEP+B,GAAMrC,EACNsC,GAAM/B,CACP,CACA8B,GAAMpC,EACNqC,GAAM9B,CACP,CACA6B,GAAMnC,EACNoC,GAAM7B,CACP,CACA4B,GAAMlC,EACNmC,GAAM5B,CACP,CACA2B,GAAMjC,EACNkC,GAAM3B,CACP,CACA0B,GAAMhC,EACNiC,GAAM1B,CACP,CAQR,CAKAvB,GAAO,QAAUG,KCpTjB,IAAA8D,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwBA,IAAIC,GAAY,KACZC,GAAY,KAuEhB,SAASC,GAAgBC,EAAGC,EAAGC,EAAM,CACpC,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GA0BJ,IArBAA,GAAItE,GAAWG,EAAE,MAAOA,EAAE,QAASC,EAAE,OAAQ,EAC7CmC,EAAK+B,GAAE,GACPtB,EAAKsB,GAAE,GACPrB,EAAKqB,GAAE,GAGPhE,EAAQL,GAAWE,EAAE,MAAOC,EAAE,KAAM,EAGpC8C,EAAK/C,EAAE,OACPgD,EAAK/C,EAAE,OAGPG,EAAOJ,EAAE,KACTK,EAAOJ,EAAE,KAGTK,EAAMuC,EAAG,CAAC,EACV/B,EAAMgC,EAAG,CAAC,EAGJoB,GAAK9B,EAAG,CAAC,EAAG8B,GAAK,GAUtB,IATKA,GAAK/D,GACTyC,EAAKsB,GACLA,GAAK,IAELtB,EAAKzC,EACL+D,IAAM/D,GAEPyB,EAAMmB,EAAOmB,GAAGrB,EAAG,CAAC,EACpBV,EAAMa,EAAOkB,GAAGpB,EAAG,CAAC,EACdmB,GAAK7B,EAAG,CAAC,EAAG6B,GAAK,GAYtB,IAXKA,GAAK9D,GACTwC,EAAKsB,GACLA,GAAK,IAELtB,EAAKxC,EACL8D,IAAM9D,GAEPU,EAAMgC,EAAG,CAAC,EAAMF,EAAGE,EAAG,CAAC,EACvBxB,EAAMyB,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBnB,EAAMC,EAAQqC,GAAGpB,EAAG,CAAC,EACrBX,EAAMC,EAAQ8B,GAAGnB,EAAG,CAAC,EACfkB,GAAK5B,EAAG,CAAC,EAAG4B,GAAK,GAYtB,IAXKA,GAAK7D,GACTuC,EAAKsB,GACLA,GAAK,IAELtB,EAAKvC,EACL6D,IAAM7D,GAEPS,EAAMiC,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBzB,EAAM0B,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EACvBpB,EAAMC,EAAQqC,GAAGnB,EAAG,CAAC,EACrBZ,EAAMC,EAAQ8B,GAAGlB,EAAG,CAAC,EACfiB,GAAK3B,EAAG,CAAC,EAAG2B,GAAK,GAYtB,IAXKA,GAAK5D,GACTsC,EAAKsB,GACLA,GAAK,IAELtB,EAAKtC,EACL4D,IAAM5D,GAEPQ,EAAMkC,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EACvB1B,EAAM2B,EAAG,CAAC,EAAML,EAAGK,EAAG,CAAC,EACvBrB,EAAMC,EAAQqC,GAAGlB,EAAG,CAAC,EACrBb,EAAMC,EAAQ8B,GAAGjB,EAAG,CAAC,EACfgB,GAAK1B,EAAG,CAAC,EAAG0B,GAAK,GAYtB,IAXKA,GAAK3D,GACTqC,EAAKsB,GACLA,GAAK,IAELtB,EAAKrC,EACL2D,IAAM3D,GAEPO,EAAMmC,EAAG,CAAC,EAAML,EAAGK,EAAG,CAAC,EACvB3B,EAAM4B,EAAG,CAAC,EAAMN,EAAGM,EAAG,CAAC,EACvBtB,EAAMC,EAAQqC,GAAGjB,EAAG,CAAC,EACrBd,EAAMC,EAAQ8B,GAAGhB,EAAG,CAAC,EACfe,GAAKzB,EAAG,CAAC,EAAGyB,GAAK,GAYtB,IAXKA,GAAK1D,GACToC,EAAKsB,GACLA,GAAK,IAELtB,EAAKpC,EACL0D,IAAM1D,GAEPM,EAAMoC,EAAG,CAAC,EAAMN,EAAGM,EAAG,CAAC,EACvB5B,EAAM6B,EAAG,CAAC,EAAMP,EAAGO,EAAG,CAAC,EACvBvB,EAAMC,EAAQqC,GAAGhB,EAAG,CAAC,EACrBf,EAAMC,EAAQ8B,GAAGf,EAAG,CAAC,EACfc,GAAKxB,EAAG,CAAC,EAAGwB,GAAK,GAYtB,IAXKA,GAAKzD,GACTmC,EAAKsB,GACLA,GAAK,IAELtB,EAAKnC,EACLyD,IAAMzD,GAEPK,EAAMqC,EAAG,CAAC,EAAMP,EAAGO,EAAG,CAAC,EACvB7B,EAAM8B,EAAG,CAAC,EAAMR,EAAGQ,EAAG,CAAC,EACvBxB,EAAMC,EAAQqC,GAAGf,EAAG,CAAC,EACrBhB,EAAMC,EAAQ8B,GAAGd,EAAG,CAAC,EACfa,GAAKvB,EAAG,CAAC,EAAGuB,GAAK,GAiBtB,IAhBKA,GAAKxD,GACTkC,EAAKsB,GACLA,GAAK,IAELtB,EAAKlC,EACLwD,IAAMxD,GAGP8C,EAAK3B,EAAQqC,GAAGd,EAAG,CAAC,EACpBK,EAAKrB,EAAQ8B,GAAGb,EAAG,CAAC,EAGpBvC,EAAMsC,EAAG,CAAC,EAAMR,EAAGQ,EAAG,CAAC,EACvB9B,EAAM+B,EAAG,CAAC,EAAMT,EAAGS,EAAG,CAAC,EAGjBY,GAAK,EAAGA,GAAKd,EAAIc,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKd,EAAIc,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKd,EAAIc,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKd,EAAIc,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKd,EAAIc,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKd,EAAIc,KAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKd,EAAIc,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKd,EAAIc,IACtB9C,EAAM6C,CAAG,EAAIhD,EAAKE,EAAM6C,CAAG,CAAE,EAC7BA,GAAM3C,EACN4C,GAAMpC,EAEPmC,GAAM1C,EACN2C,GAAMnC,CACP,CACAkC,GAAMzC,EACN0C,GAAMlC,CACP,CACAiC,GAAMxC,EACNyC,GAAMjC,CACP,CACAgC,GAAMvC,EACNwC,GAAMhC,CACP,CACA+B,GAAMtC,EACNuC,GAAM/B,CACP,CACA8B,GAAMrC,EACNsC,GAAM9B,CACP,CACA6B,GAAMpC,EACNqC,GAAM7B,CACP,CAST,CAKAzB,GAAO,QAAUG,KC5UjB,IAAAqE,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwBA,IAAIC,GAAY,KACZC,GAAY,KAuEhB,SAASC,GAAgBC,EAAGC,EAAGC,EAAM,CACpC,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GA0BJ,IArBAA,GAAI7E,GAAWG,EAAE,MAAOA,EAAE,QAASC,EAAE,OAAQ,EAC7CuC,EAAKkC,GAAE,GACPxB,EAAKwB,GAAE,GACPvB,EAAKuB,GAAE,GAGPvE,EAAQL,GAAWE,EAAE,MAAOC,EAAE,KAAM,EAGpCmD,EAAKpD,EAAE,OACPqD,GAAKpD,EAAE,OAGPG,EAAOJ,EAAE,KACTK,EAAOJ,EAAE,KAGTK,EAAM4C,EAAG,CAAC,EACVnC,EAAMoC,EAAG,CAAC,EAGJsB,GAAKjC,EAAG,CAAC,EAAGiC,GAAK,GAUtB,IATKA,GAAKtE,GACT8C,EAAKwB,GACLA,GAAK,IAELxB,EAAK9C,EACLsE,IAAMtE,GAEP4B,EAAMqB,EAAOqB,GAAGvB,EAAG,CAAC,EACpBX,EAAMc,GAAOoB,GAAGtB,EAAG,CAAC,EACdqB,GAAKhC,EAAG,CAAC,EAAGgC,GAAK,GAYtB,IAXKA,GAAKrE,GACT6C,EAAKwB,GACLA,GAAK,IAELxB,EAAK7C,EACLqE,IAAMrE,GAEPW,EAAMoC,EAAG,CAAC,EAAMF,EAAGE,EAAG,CAAC,EACvB3B,EAAM4B,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBrB,EAAMC,EAAQyC,GAAGtB,EAAG,CAAC,EACrBZ,EAAMC,EAAQiC,GAAGrB,EAAG,CAAC,EACfoB,GAAK/B,EAAG,CAAC,EAAG+B,GAAK,GAYtB,IAXKA,GAAKpE,GACT4C,EAAKwB,GACLA,GAAK,IAELxB,EAAK5C,EACLoE,IAAMpE,GAEPU,EAAMqC,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvB5B,EAAM6B,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EACvBtB,EAAMC,EAAQyC,GAAGrB,EAAG,CAAC,EACrBb,EAAMC,EAAQiC,GAAGpB,EAAG,CAAC,EACfmB,GAAK9B,EAAG,CAAC,EAAG8B,GAAK,GAYtB,IAXKA,GAAKnE,GACT2C,EAAKwB,GACLA,GAAK,IAELxB,EAAK3C,EACLmE,IAAMnE,GAEPS,EAAMsC,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EACvB7B,EAAM8B,EAAG,CAAC,EAAML,EAAGK,EAAG,CAAC,EACvBvB,EAAMC,EAAQyC,GAAGpB,EAAG,CAAC,EACrBd,EAAMC,EAAQiC,GAAGnB,EAAG,CAAC,EACfkB,GAAK7B,EAAG,CAAC,EAAG6B,GAAK,GAYtB,IAXKA,GAAKlE,GACT0C,EAAKwB,GACLA,GAAK,IAELxB,EAAK1C,EACLkE,IAAMlE,GAEPQ,EAAMuC,EAAG,CAAC,EAAML,EAAGK,EAAG,CAAC,EACvB9B,EAAM+B,EAAG,CAAC,EAAMN,EAAGM,EAAG,CAAC,EACvBxB,EAAMC,EAAQyC,GAAGnB,EAAG,CAAC,EACrBf,EAAMC,EAAQiC,GAAGlB,EAAG,CAAC,EACfiB,GAAK5B,EAAG,CAAC,EAAG4B,GAAK,GAYtB,IAXKA,GAAKjE,GACTyC,EAAKwB,GACLA,GAAK,IAELxB,EAAKzC,EACLiE,IAAMjE,GAEPO,EAAMwC,EAAG,CAAC,EAAMN,EAAGM,EAAG,CAAC,EACvB/B,EAAMgC,EAAG,CAAC,EAAMP,EAAGO,EAAG,CAAC,EACvBzB,EAAMC,EAAQyC,GAAGlB,EAAG,CAAC,EACrBhB,EAAMC,EAAQiC,GAAGjB,EAAG,CAAC,EACfgB,GAAK3B,EAAG,CAAC,EAAG2B,GAAK,GAYtB,IAXKA,GAAKhE,GACTwC,EAAKwB,GACLA,GAAK,IAELxB,EAAKxC,EACLgE,IAAMhE,GAEPM,EAAMyC,EAAG,CAAC,EAAMP,EAAGO,EAAG,CAAC,EACvBhC,EAAMiC,EAAG,CAAC,EAAMR,EAAGQ,EAAG,CAAC,EACvB1B,EAAMC,EAAQyC,GAAGjB,EAAG,CAAC,EACrBjB,EAAMC,EAAQiC,GAAGhB,EAAG,CAAC,EACfe,GAAK1B,EAAG,CAAC,EAAG0B,GAAK,GAYtB,IAXKA,GAAK/D,GACTuC,EAAKwB,GACLA,GAAK,IAELxB,EAAKvC,EACL+D,IAAM/D,GAEPK,EAAM0C,EAAG,CAAC,EAAMR,EAAGQ,EAAG,CAAC,EACvBjC,EAAMkC,EAAG,CAAC,EAAMT,EAAGS,EAAG,CAAC,EACvB3B,EAAMC,EAAQyC,GAAGhB,EAAG,CAAC,EACrBlB,EAAMC,EAAQiC,GAAGf,EAAG,CAAC,EACfc,GAAKzB,EAAG,CAAC,EAAGyB,GAAK,GAiBtB,IAhBKA,GAAK9D,GACTsC,EAAKwB,GACLA,GAAK,IAELxB,EAAKtC,EACL8D,IAAM9D,GAGPmD,GAAK9B,EAAQyC,GAAGf,EAAG,CAAC,EACpBK,GAAKvB,EAAQiC,GAAGd,EAAG,CAAC,EAGpB5C,EAAM2C,EAAG,CAAC,EAAMT,EAAGS,EAAG,CAAC,EACvBlC,EAAMmC,EAAG,CAAC,EAAMV,EAAGU,EAAG,CAAC,EAGjBa,GAAK,EAAGA,GAAKf,EAAIe,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKf,EAAIe,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKf,EAAIe,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKf,EAAIe,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKf,EAAIe,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKf,EAAIe,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKf,EAAIe,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKf,EAAIe,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKf,EAAIe,KACtBnD,EAAMkD,EAAG,EAAIrD,EAAKE,EAAMkD,EAAG,CAAE,EAC7BA,IAAMhD,EACNiD,IAAMxC,EAEPuC,IAAM/C,EACNgD,IAAMvC,CACP,CACAsC,IAAM9C,EACN+C,IAAMtC,CACP,CACAqC,IAAM7C,EACN8C,IAAMrC,CACP,CACAoC,IAAM5C,EACN6C,IAAMpC,CACP,CACAmC,IAAM3C,EACN4C,IAAMnC,CACP,CACAkC,IAAM1C,EACN2C,IAAMlC,CACP,CACAiC,IAAMzC,EACN0C,IAAMjC,CACP,CACAgC,IAAMxC,EACNyC,IAAMhC,CACP,CAUV,CAKA3B,GAAO,QAAUG,KCpWjB,IAAA4E,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwBA,IAAIC,GAAY,KACZC,GAAY,KAuEhB,SAASC,GAAiBC,EAAGC,EAAGC,EAAM,CACrC,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GA0BJ,IArBAA,GAAIpF,GAAWG,EAAE,MAAOA,EAAE,QAASC,EAAE,OAAQ,EAC7C2C,EAAKqC,GAAE,GACP1B,GAAK0B,GAAE,GACPzB,GAAKyB,GAAE,GAGP9E,EAAQL,GAAWE,EAAE,MAAOC,EAAE,KAAM,EAGpCwD,GAAKzD,EAAE,OACP0D,GAAKzD,EAAE,OAGPG,EAAOJ,EAAE,KACTK,EAAOJ,EAAE,KAGTK,EAAMiD,GAAG,CAAC,EACVvC,EAAMwC,GAAG,CAAC,EAGJwB,GAAKpC,EAAG,CAAC,EAAGoC,GAAK,GAUtB,IATKA,GAAK7E,GACTmD,GAAK0B,GACLA,GAAK,IAEL1B,GAAKnD,EACL6E,IAAM7E,GAEP+B,EAAMuB,GAAOuB,GAAGzB,GAAG,CAAC,EACpBZ,EAAMe,GAAOsB,GAAGxB,GAAG,CAAC,EACduB,GAAKnC,EAAG,CAAC,EAAGmC,GAAK,GAYtB,IAXKA,GAAK5E,GACTkD,GAAK0B,GACLA,GAAK,IAEL1B,GAAKlD,EACL4E,IAAM5E,GAEPY,EAAMwC,GAAG,CAAC,EAAMF,GAAGE,GAAG,CAAC,EACvB9B,EAAM+B,GAAG,CAAC,EAAMH,GAAGG,GAAG,CAAC,EACvBvB,EAAMC,EAAQ6C,GAAGxB,GAAG,CAAC,EACrBb,EAAMC,EAAQoC,GAAGvB,GAAG,CAAC,EACfsB,GAAKlC,EAAG,CAAC,EAAGkC,GAAK,GAYtB,IAXKA,GAAK3E,GACTiD,EAAK0B,GACLA,GAAK,IAEL1B,EAAKjD,EACL2E,IAAM3E,GAEPW,EAAMyC,GAAG,CAAC,EAAMH,EAAGG,GAAG,CAAC,EACvB/B,EAAMgC,GAAG,CAAC,EAAMJ,EAAGI,GAAG,CAAC,EACvBxB,EAAMC,EAAQ6C,GAAGvB,GAAG,CAAC,EACrBd,EAAMC,EAAQoC,GAAGtB,GAAG,CAAC,EACfqB,GAAKjC,EAAG,CAAC,EAAGiC,GAAK,GAYtB,IAXKA,GAAK1E,GACTgD,EAAK0B,GACLA,GAAK,IAEL1B,EAAKhD,EACL0E,IAAM1E,GAEPU,EAAM0C,GAAG,CAAC,EAAMJ,EAAGI,GAAG,CAAC,EACvBhC,EAAMiC,GAAG,CAAC,EAAML,EAAGK,GAAG,CAAC,EACvBzB,EAAMC,EAAQ6C,GAAGtB,GAAG,CAAC,EACrBf,EAAMC,EAAQoC,GAAGrB,GAAG,CAAC,EACfoB,GAAKhC,EAAG,CAAC,EAAGgC,GAAK,GAYtB,IAXKA,GAAKzE,GACT+C,EAAK0B,GACLA,GAAK,IAEL1B,EAAK/C,EACLyE,IAAMzE,GAEPS,EAAM2C,GAAG,CAAC,EAAML,EAAGK,GAAG,CAAC,EACvBjC,EAAMkC,GAAG,CAAC,EAAMN,EAAGM,GAAG,CAAC,EACvB1B,EAAMC,EAAQ6C,GAAGrB,GAAG,CAAC,EACrBhB,EAAMC,EAAQoC,GAAGpB,GAAG,CAAC,EACfmB,GAAK/B,EAAG,CAAC,EAAG+B,GAAK,GAYtB,IAXKA,GAAKxE,GACT8C,EAAK0B,GACLA,GAAK,IAEL1B,EAAK9C,EACLwE,IAAMxE,GAEPQ,EAAM4C,GAAG,CAAC,EAAMN,EAAGM,GAAG,CAAC,EACvBlC,EAAMmC,GAAG,CAAC,EAAMP,EAAGO,GAAG,CAAC,EACvB3B,EAAMC,EAAQ6C,GAAGpB,GAAG,CAAC,EACrBjB,EAAMC,EAAQoC,GAAGnB,GAAG,CAAC,EACfkB,GAAK9B,EAAG,CAAC,EAAG8B,GAAK,GAYtB,IAXKA,GAAKvE,GACT6C,EAAK0B,GACLA,GAAK,IAEL1B,EAAK7C,EACLuE,IAAMvE,GAEPO,EAAM6C,GAAG,CAAC,EAAMP,EAAGO,GAAG,CAAC,EACvBnC,EAAMoC,GAAG,CAAC,EAAMR,EAAGQ,GAAG,CAAC,EACvB5B,EAAMC,EAAQ6C,GAAGnB,GAAG,CAAC,EACrBlB,EAAMC,EAAQoC,GAAGlB,GAAG,CAAC,EACfiB,GAAK7B,EAAG,CAAC,EAAG6B,GAAK,GAYtB,IAXKA,GAAKtE,GACT4C,EAAK0B,GACLA,GAAK,IAEL1B,EAAK5C,EACLsE,IAAMtE,GAEPM,EAAM8C,GAAG,CAAC,EAAMR,EAAGQ,GAAG,CAAC,EACvBpC,EAAMqC,GAAG,CAAC,EAAMT,EAAGS,GAAG,CAAC,EACvB7B,EAAMC,EAAQ6C,GAAGlB,GAAG,CAAC,EACrBnB,EAAMC,EAAQoC,GAAGjB,GAAG,CAAC,EACfgB,GAAK5B,EAAG,CAAC,EAAG4B,GAAK,GAYtB,IAXKA,GAAKrE,GACT2C,EAAK0B,GACLA,GAAK,IAEL1B,EAAK3C,EACLqE,IAAMrE,GAEPK,EAAM+C,GAAG,CAAC,EAAMT,EAAGS,GAAG,CAAC,EACvBrC,EAAMsC,GAAG,CAAC,EAAMV,EAAGU,GAAG,CAAC,EACvB9B,EAAMC,EAAQ6C,GAAGjB,GAAG,CAAC,EACrBpB,EAAMC,EAAQoC,GAAGhB,GAAG,CAAC,EACfe,GAAK3B,EAAG,CAAC,EAAG2B,GAAK,GAiBtB,IAhBKA,GAAKpE,GACT0C,EAAK0B,GACLA,GAAK,IAEL1B,EAAK1C,EACLoE,IAAMpE,GAGPwD,GAAKjC,EAAQ6C,GAAGhB,GAAG,CAAC,EACpBK,GAAKzB,EAAQoC,GAAGf,GAAG,CAAC,EAGpBjD,EAAMgD,GAAG,CAAC,EAAMV,EAAGU,GAAG,CAAC,EACvBtC,EAAMuC,GAAG,CAAC,EAAMX,EAAGW,GAAG,CAAC,EAGjBc,GAAK,EAAGA,GAAKhB,GAAIgB,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKhB,GAAIgB,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKhB,EAAIgB,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKhB,EAAIgB,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKhB,EAAIgB,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKhB,EAAIgB,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKhB,EAAIgB,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKhB,EAAIgB,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKhB,EAAIgB,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKhB,EAAIgB,KACtBxD,EAAMuD,EAAG,EAAI1D,EAAKE,EAAMuD,EAAG,CAAE,EAC7BA,IAAMrD,EACNsD,IAAM5C,EAEP2C,IAAMpD,EACNqD,IAAM3C,CACP,CACA0C,IAAMnD,EACNoD,IAAM1C,CACP,CACAyC,IAAMlD,EACNmD,IAAMzC,CACP,CACAwC,IAAMjD,EACNkD,IAAMxC,CACP,CACAuC,IAAMhD,EACNiD,IAAMvC,CACP,CACAsC,IAAM/C,EACNgD,IAAMtC,CACP,CACAqC,IAAM9C,EACN+C,IAAMrC,CACP,CACAoC,IAAM7C,EACN8C,IAAMpC,CACP,CACAmC,IAAM5C,EACN6C,IAAMnC,CACP,CAWX,CAKA7B,GAAO,QAAUG,KC5XjB,IAAAmF,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cA8GA,SAASC,GAASC,EAAGC,EAAGC,EAAM,CAC7BD,EAAE,UAAW,CAAE,EAAGA,EAAE,KAAMA,EAAE,OAAQC,EAAKF,EAAE,UAAW,CAAE,EAAGA,EAAE,KAAMA,EAAE,MAAO,CAAE,CAAE,CACjF,CAKAF,GAAO,QAAUC,KCrHjB,IAAAI,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cA8GA,SAASC,GAASC,EAAGC,EAAGC,EAAM,CAC7B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAsBJ,IAjBAH,EAAKT,EAAE,MAAO,CAAE,EAChBO,EAAMP,EAAE,QAAS,CAAE,EACnBQ,EAAMP,EAAE,QAAS,CAAE,EAGnBS,EAAKV,EAAE,OACPW,EAAKV,EAAE,OAGPE,EAAOH,EAAE,KACTI,EAAOH,EAAE,KAGTI,EAAML,EAAE,UAAW,CAAE,EACrBM,EAAML,EAAE,UAAW,CAAE,EAGfW,EAAK,EAAGA,EAAKH,EAAIG,IACtBN,EAAKF,EAAMO,EAAIT,EAAKG,EAAKF,EAAMO,CAAG,CAAE,CAAE,EACtCA,GAAMH,EACNI,GAAMH,CAER,CAKAV,GAAO,QAAUC,KCxJjB,IAAAc,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cA8GA,SAASC,GAASC,EAAGC,EAAGC,EAAM,CAC7B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAsCJ,IAjCAR,EAAKX,EAAE,MACPc,EAAKd,EAAE,QACPe,EAAKd,EAAE,QACFD,EAAE,QAAU,aAEhBY,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXJ,EAAMO,EAAI,CAAE,EACZN,EAAMM,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBL,EAAMM,EAAI,CAAE,EACZL,EAAMK,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,IAGzBH,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXJ,EAAMO,EAAI,CAAE,EACZN,EAAMM,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBL,EAAMM,EAAI,CAAE,EACZL,EAAMK,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,GAG1BC,EAAKhB,EAAE,OACPiB,EAAKhB,EAAE,OAGPE,EAAOH,EAAE,KACTI,EAAOH,EAAE,KAGTI,EAAML,EAAE,UAAW,CAAE,EACrBM,EAAML,EAAE,UAAW,CAAE,EAGfkB,EAAK,EAAGA,EAAKN,EAAIM,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKN,EAAIM,IACtBZ,EAAKF,EAAMa,EAAIf,EAAKG,EAAKF,EAAMa,CAAG,CAAE,CAAE,EACtCA,GAAMT,EACNU,GAAMR,EAEPO,GAAMR,EACNS,GAAMP,CACP,CACD,CAKAZ,GAAO,QAAUC,KCnLjB,IAAAqB,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cA8GA,SAASC,GAASC,EAAGC,EAAGC,EAAM,CAC7B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EA4CJ,IAvCAV,EAAKb,EAAE,MACPiB,EAAKjB,EAAE,QACPkB,EAAKjB,EAAE,QACFD,EAAE,QAAU,aAEhBc,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXN,EAAMU,EAAI,CAAE,EACZT,EAAMS,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBR,EAAMQ,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBP,EAAMQ,EAAI,CAAE,EACZP,EAAMO,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBN,EAAMM,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,IAGzBJ,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXN,EAAMU,EAAI,CAAE,EACZT,EAAMS,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBR,EAAMQ,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBP,EAAMQ,EAAI,CAAE,EACZP,EAAMO,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBN,EAAMM,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,GAG1BC,EAAKnB,EAAE,OACPoB,EAAKnB,EAAE,OAGPE,EAAOH,EAAE,KACTI,EAAOH,EAAE,KAGTI,EAAML,EAAE,UAAW,CAAE,EACrBM,EAAML,EAAE,UAAW,CAAE,EAGfsB,EAAK,EAAGA,EAAKP,EAAIO,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKP,EAAIO,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKP,EAAIO,IACtBf,EAAKF,EAAMgB,EAAIlB,EAAKG,EAAKF,EAAMgB,CAAG,CAAE,CAAE,EACtCA,GAAMZ,EACNa,GAAMV,EAEPS,GAAMX,EACNY,GAAMT,CACP,CACAQ,GAAMV,EACNW,GAAMR,CACP,CACD,CAKAd,GAAO,QAAUC,KCjMjB,IAAAyB,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cA8GA,SAASC,GAASC,EAAGC,EAAGC,EAAM,CAC7B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAkDJ,IA7CAZ,EAAKf,EAAE,MACPoB,EAAKpB,EAAE,QACPqB,EAAKpB,EAAE,QACFD,EAAE,QAAU,aAEhBgB,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXR,EAAMa,EAAI,CAAE,EACZZ,EAAMY,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBV,EAAMU,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBT,EAAMU,EAAI,CAAE,EACZT,EAAMS,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBR,EAAMQ,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBP,EAAMO,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,IAGzBL,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXR,EAAMa,EAAI,CAAE,EACZZ,EAAMY,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBV,EAAMU,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBT,EAAMU,EAAI,CAAE,EACZT,EAAMS,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBR,EAAMQ,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBP,EAAMO,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,GAG1BC,EAAKtB,EAAE,OACPuB,EAAKtB,EAAE,OAGPE,EAAOH,EAAE,KACTI,EAAOH,EAAE,KAGTI,EAAML,EAAE,UAAW,CAAE,EACrBM,EAAML,EAAE,UAAW,CAAE,EAGf0B,EAAK,EAAGA,EAAKR,EAAIQ,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKR,EAAIQ,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKR,EAAIQ,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKR,EAAIQ,IACtBlB,EAAKF,EAAMmB,EAAIrB,EAAKG,EAAKF,EAAMmB,CAAG,CAAE,CAAE,EACtCA,GAAMf,EACNgB,GAAMZ,EAEPW,GAAMd,EACNe,GAAMX,CACP,CACAU,GAAMb,EACNc,GAAMV,CACP,CACAS,GAAMZ,EACNa,GAAMT,CACP,CACD,CAKAhB,GAAO,QAAUC,KC/MjB,IAAA6B,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cA8GA,SAASC,GAASC,EAAGC,EAAGC,EAAM,CAC7B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAwDJ,IAnDAd,EAAKjB,EAAE,MACPuB,EAAKvB,EAAE,QACPwB,EAAKvB,EAAE,QACFD,EAAE,QAAU,aAEhBkB,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXV,EAAMgB,EAAI,CAAE,EACZf,EAAMe,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBX,EAAMY,EAAI,CAAE,EACZX,EAAMW,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBV,EAAMU,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBT,EAAMS,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBR,EAAMQ,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,IAGzBN,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXV,EAAMgB,EAAI,CAAE,EACZf,EAAMe,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBX,EAAMY,EAAI,CAAE,EACZX,EAAMW,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBV,EAAMU,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBT,EAAMS,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBR,EAAMQ,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,GAG1BC,EAAKzB,EAAE,OACP0B,EAAKzB,EAAE,OAGPE,EAAOH,EAAE,KACTI,EAAOH,EAAE,KAGTI,EAAML,EAAE,UAAW,CAAE,EACrBM,EAAML,EAAE,UAAW,CAAE,EAGf8B,EAAK,EAAGA,EAAKT,EAAIS,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKT,EAAIS,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKT,EAAIS,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKT,EAAIS,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKT,EAAIS,IACtBrB,EAAKF,EAAMsB,EAAIxB,EAAKG,EAAKF,EAAMsB,CAAG,CAAE,CAAE,EACtCA,GAAMlB,EACNmB,GAAMd,EAEPa,GAAMjB,EACNkB,GAAMb,CACP,CACAY,GAAMhB,EACNiB,GAAMZ,CACP,CACAW,GAAMf,EACNgB,GAAMX,CACP,CACAU,GAAMd,EACNe,GAAMV,CACP,CACD,CAKAlB,GAAO,QAAUC,KC7NjB,IAAAiC,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAgHA,SAASC,GAASC,EAAGC,EAAGC,EAAM,CAC7B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EA8DJ,IAzDAhB,EAAKnB,EAAE,MACP0B,EAAK1B,EAAE,QACP2B,EAAK1B,EAAE,QACFD,EAAE,QAAU,aAEhBoB,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXZ,EAAMmB,EAAI,CAAE,EACZlB,EAAMkB,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBjB,EAAMiB,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBf,EAAMe,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBb,EAAMc,EAAI,CAAE,EACZb,EAAMa,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBV,EAAMU,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBT,EAAMS,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,IAGzBP,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXZ,EAAMmB,EAAI,CAAE,EACZlB,EAAMkB,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBjB,EAAMiB,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBf,EAAMe,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBb,EAAMc,EAAI,CAAE,EACZb,EAAMa,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBV,EAAMU,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBT,EAAMS,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,GAG1BC,EAAK5B,EAAE,OACP6B,EAAK5B,EAAE,OAGPE,EAAOH,EAAE,KACTI,EAAOH,EAAE,KAGTI,EAAML,EAAE,UAAW,CAAE,EACrBM,EAAML,EAAE,UAAW,CAAE,EAGfkC,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IACtBxB,EAAKF,EAAMyB,EAAI3B,EAAKG,EAAKF,EAAMyB,CAAG,CAAE,CAAE,EACtCA,GAAMrB,EACNsB,GAAMhB,EAEPe,GAAMpB,EACNqB,GAAMf,CACP,CACAc,GAAMnB,EACNoB,GAAMd,CACP,CACAa,GAAMlB,EACNmB,GAAMb,CACP,CACAY,GAAMjB,EACNkB,GAAMZ,CACP,CACAW,GAAMhB,EACNiB,GAAMX,CACP,CACD,CAKApB,GAAO,QAAUC,KC7OjB,IAAAqC,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAgHA,SAASC,GAASC,EAAGC,EAAGC,EAAM,CAC7B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAoEJ,IA/DAlB,EAAKrB,EAAE,MACP6B,EAAK7B,EAAE,QACP8B,EAAK7B,EAAE,QACFD,EAAE,QAAU,aAEhBsB,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXd,EAAMsB,EAAI,CAAE,EACZrB,EAAMqB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBpB,EAAMoB,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBnB,EAAMmB,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBlB,EAAMkB,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBjB,EAAMiB,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBf,EAAMgB,EAAI,CAAE,EACZf,EAAMe,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBV,EAAMU,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,IAGzBR,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXd,EAAMsB,EAAI,CAAE,EACZrB,EAAMqB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBpB,EAAMoB,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBnB,EAAMmB,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBlB,EAAMkB,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBjB,EAAMiB,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBf,EAAMgB,EAAI,CAAE,EACZf,EAAMe,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBV,EAAMU,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,GAG1BC,EAAK/B,EAAE,OACPgC,EAAK/B,EAAE,OAGPE,EAAOH,EAAE,KACTI,EAAOH,EAAE,KAGTI,EAAML,EAAE,UAAW,CAAE,EACrBM,EAAML,EAAE,UAAW,CAAE,EAGfsC,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IACtB3B,EAAKF,EAAM4B,EAAI9B,EAAKG,EAAKF,EAAM4B,CAAG,CAAE,CAAE,EACtCA,GAAMxB,EACNyB,GAAMlB,EAEPiB,GAAMvB,EACNwB,GAAMjB,CACP,CACAgB,GAAMtB,EACNuB,GAAMhB,CACP,CACAe,GAAMrB,EACNsB,GAAMf,CACP,CACAc,GAAMpB,EACNqB,GAAMd,CACP,CACAa,GAAMnB,EACNoB,GAAMb,CACP,CACAY,GAAMlB,EACNmB,GAAMZ,CACP,CACD,CAKAtB,GAAO,QAAUC,KC3PjB,IAAAyC,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAgHA,SAASC,GAASC,EAAGC,EAAGC,EAAM,CAC7B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EA0EJ,IArEApB,EAAKvB,EAAE,MACPgC,EAAKhC,EAAE,QACPiC,EAAKhC,EAAE,QACFD,EAAE,QAAU,aAEhBwB,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXQ,EAAKR,EAAI,CAAE,EACXhB,EAAMyB,EAAI,CAAE,EACZxB,EAAMwB,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBvB,EAAMuB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBtB,EAAMsB,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBrB,EAAMqB,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBpB,EAAMoB,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBnB,EAAMmB,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBlB,EAAMkB,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBjB,EAAMkB,EAAI,CAAE,EACZjB,EAAMiB,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBf,EAAMe,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,IAGzBT,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXQ,EAAKR,EAAI,CAAE,EACXhB,EAAMyB,EAAI,CAAE,EACZxB,EAAMwB,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBvB,EAAMuB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBtB,EAAMsB,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBrB,EAAMqB,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBpB,EAAMoB,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBnB,EAAMmB,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBlB,EAAMkB,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBjB,EAAMkB,EAAI,CAAE,EACZjB,EAAMiB,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBf,EAAMe,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,GAG1BC,EAAKlC,EAAE,OACPmC,EAAKlC,EAAE,OAGPE,EAAOH,EAAE,KACTI,EAAOH,EAAE,KAGTI,EAAML,EAAE,UAAW,CAAE,EACrBM,EAAML,EAAE,UAAW,CAAE,EAGf0C,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IACtB9B,EAAKF,EAAM+B,EAAIjC,EAAKG,EAAKF,EAAM+B,CAAG,CAAE,CAAE,EACtCA,GAAM3B,EACN4B,GAAMpB,EAEPmB,GAAM1B,EACN2B,GAAMnB,CACP,CACAkB,GAAMzB,EACN0B,GAAMlB,CACP,CACAiB,GAAMxB,EACNyB,GAAMjB,CACP,CACAgB,GAAMvB,EACNwB,GAAMhB,CACP,CACAe,GAAMtB,EACNuB,GAAMf,CACP,CACAc,GAAMrB,EACNsB,GAAMd,CACP,CACAa,GAAMpB,EACNqB,GAAMb,CACP,CACD,CAKAxB,GAAO,QAAUC,KCzQjB,IAAA6C,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAgHA,SAASC,GAASC,EAAGC,EAAGC,EAAM,CAC7B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAgFJ,IA3EAtB,EAAKzB,EAAE,MACPmC,EAAKnC,EAAE,QACPoC,EAAKnC,EAAE,QACFD,EAAE,QAAU,aAEhB0B,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXQ,EAAKR,EAAI,CAAE,EACXS,EAAKT,EAAI,CAAE,EACXlB,EAAM4B,EAAI,CAAE,EACZ3B,EAAM2B,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzB1B,EAAM0B,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBzB,EAAMyB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBxB,EAAMwB,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBvB,EAAMuB,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBtB,EAAMsB,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBrB,EAAMqB,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBpB,EAAMoB,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBnB,EAAMoB,EAAI,CAAE,EACZnB,EAAMmB,EAAI,CAAE,EAAMV,EAAGU,EAAG,CAAC,EACzBlB,EAAMkB,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzBjB,EAAMiB,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBf,EAAMe,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,IAGzBV,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXQ,EAAKR,EAAI,CAAE,EACXS,EAAKT,EAAI,CAAE,EACXlB,EAAM4B,EAAI,CAAE,EACZ3B,EAAM2B,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzB1B,EAAM0B,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBzB,EAAMyB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBxB,EAAMwB,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBvB,EAAMuB,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBtB,EAAMsB,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBrB,EAAMqB,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBpB,EAAMoB,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBnB,EAAMoB,EAAI,CAAE,EACZnB,EAAMmB,EAAI,CAAE,EAAMV,EAAGU,EAAG,CAAC,EACzBlB,EAAMkB,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzBjB,EAAMiB,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBf,EAAMe,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,GAG1BC,EAAKrC,EAAE,OACPsC,EAAKrC,EAAE,OAGPE,EAAOH,EAAE,KACTI,EAAOH,EAAE,KAGTI,EAAML,EAAE,UAAW,CAAE,EACrBM,EAAML,EAAE,UAAW,CAAE,EAGf8C,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IACtBjC,EAAKF,EAAMkC,EAAIpC,EAAKG,EAAKF,EAAMkC,CAAG,CAAE,CAAE,EACtCA,GAAM9B,EACN+B,GAAMtB,EAEPqB,GAAM7B,EACN8B,GAAMrB,CACP,CACAoB,GAAM5B,EACN6B,GAAMpB,CACP,CACAmB,GAAM3B,EACN4B,GAAMnB,CACP,CACAkB,GAAM1B,EACN2B,GAAMlB,CACP,CACAiB,GAAMzB,EACN0B,GAAMjB,CACP,CACAgB,GAAMxB,EACNyB,GAAMhB,CACP,CACAe,GAAMvB,EACNwB,GAAMf,CACP,CACAc,GAAMtB,EACNuB,GAAMd,CACP,CACD,CAKA1B,GAAO,QAAUC,KCvRjB,IAAAiD,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAgHA,SAASC,GAAUC,EAAGC,EAAGC,EAAM,CAC9B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAsFJ,IAjFAxB,EAAK3B,EAAE,MACPsC,EAAKtC,EAAE,QACPuC,EAAKtC,EAAE,QACFD,EAAE,QAAU,aAEhB4B,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXQ,EAAKR,EAAI,CAAE,EACXS,EAAKT,EAAI,CAAE,EACXU,EAAKV,EAAI,CAAE,EACXpB,EAAM+B,EAAI,CAAE,EACZ9B,EAAM8B,EAAI,CAAE,EAAMV,EAAGU,EAAG,CAAC,EACzB7B,EAAM6B,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzB5B,EAAM4B,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzB3B,EAAM2B,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzB1B,EAAM0B,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBzB,EAAMyB,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBxB,EAAMwB,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBvB,EAAMuB,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBtB,EAAMsB,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBrB,EAAMsB,EAAI,CAAE,EACZrB,EAAMqB,EAAI,CAAE,EAAMX,EAAGW,EAAG,CAAC,EACzBpB,EAAMoB,EAAI,CAAE,EAAMV,EAAGU,EAAG,CAAC,EACzBnB,EAAMmB,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzBlB,EAAMkB,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBjB,EAAMiB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBf,EAAMe,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,IAGzBX,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXQ,EAAKR,EAAI,CAAE,EACXS,EAAKT,EAAI,CAAE,EACXU,EAAKV,EAAI,CAAE,EACXpB,EAAM+B,EAAI,CAAE,EACZ9B,EAAM8B,EAAI,CAAE,EAAMV,EAAGU,EAAG,CAAC,EACzB7B,EAAM6B,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzB5B,EAAM4B,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzB3B,EAAM2B,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzB1B,EAAM0B,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBzB,EAAMyB,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBxB,EAAMwB,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBvB,EAAMuB,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBtB,EAAMsB,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBrB,EAAMsB,EAAI,CAAE,EACZrB,EAAMqB,EAAI,CAAE,EAAMX,EAAGW,EAAG,CAAC,EACzBpB,EAAMoB,EAAI,CAAE,EAAMV,EAAGU,EAAG,CAAC,EACzBnB,EAAMmB,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzBlB,EAAMkB,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBjB,EAAMiB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBf,EAAMe,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,GAG1BC,EAAKxC,EAAE,OACPyC,EAAKxC,EAAE,OAGPE,EAAOH,EAAE,KACTI,EAAOH,EAAE,KAGTI,EAAML,EAAE,UAAW,CAAE,EACrBM,EAAML,EAAE,UAAW,CAAE,EAGfkD,EAAK,EAAGA,EAAKd,EAAIc,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKd,EAAIc,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKd,EAAIc,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKd,EAAIc,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKd,EAAIc,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKd,EAAIc,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKd,EAAIc,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKd,EAAIc,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKd,EAAIc,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKd,EAAIc,IACtBpC,EAAKF,EAAMqC,EAAIvC,EAAKG,EAAKF,EAAMqC,CAAG,CAAE,CAAE,EACtCA,GAAMjC,EACNkC,GAAMxB,EAEPuB,GAAMhC,EACNiC,GAAMvB,CACP,CACAsB,GAAM/B,EACNgC,GAAMtB,CACP,CACAqB,GAAM9B,EACN+B,GAAMrB,CACP,CACAoB,GAAM7B,EACN8B,GAAMpB,CACP,CACAmB,GAAM5B,EACN6B,GAAMnB,CACP,CACAkB,GAAM3B,EACN4B,GAAMlB,CACP,CACAiB,GAAM1B,EACN2B,GAAMjB,CACP,CACAgB,GAAMzB,EACN0B,GAAMhB,CACP,CACAe,GAAMxB,EACNyB,GAAMf,CACP,CACD,CAKA5B,GAAO,QAAUC,KCrSjB,IAAAqD,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAsBA,IAAIC,GAAQ,KACRC,GAAY,KAKZC,GAAO,QA6FX,SAASC,GAASC,EAAGC,EAAGC,EAAM,CAC7B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EA4BJ,IA1BAP,EAAKV,EAAE,MAGPO,EAAMX,GAAOc,CAAG,EAGhBP,EAAOH,EAAE,KACTI,EAAOH,EAAE,KAGTU,EAAKX,EAAE,QACPY,EAAKX,EAAE,QAGPY,EAAKb,EAAE,OACPc,EAAKb,EAAE,OAGPI,EAAOL,EAAE,MACTM,EAAOL,EAAE,MAGTO,EAAMR,EAAE,UAAW,CAAE,EACrBS,EAAMR,EAAE,UAAW,CAAE,EAGfgB,EAAI,EAAGA,EAAIV,EAAKU,IACrBF,EAAKlB,GAAWa,EAAIC,EAAIE,EAAIR,EAAMY,EAAGnB,EAAK,EAC1CkB,EAAKnB,GAAWa,EAAIE,EAAIE,EAAIR,EAAMW,EAAGnB,EAAK,EAC1CW,EAAKL,EAAMY,EAAId,EAAKM,EAAKL,EAAMY,CAAG,CAAE,CAAE,CAExC,CAKApB,GAAO,QAAUI,KC9KjB,IAAAmB,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAyFA,SAASC,GAASC,EAAGC,EAAGC,EAAM,CAC7BD,EAAE,KAAMA,EAAE,MAAO,EAAIC,EAAKF,EAAE,KAAMA,EAAE,MAAO,CAAE,CAC9C,CAKAF,GAAO,QAAUC,KChGjB,IAAAI,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAyFA,SAASC,GAASC,EAAGC,EAAGC,EAAM,CAC7B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAkBJ,IAbAH,EAAKP,EAAE,MAAO,CAAE,EAChBK,EAAML,EAAE,QAAS,CAAE,EACnBM,EAAML,EAAE,QAAS,CAAE,EAGnBO,EAAKR,EAAE,OACPS,EAAKR,EAAE,OAGPE,EAAOH,EAAE,KACTI,EAAOH,EAAE,KAGHS,EAAK,EAAGA,EAAKH,EAAIG,IACtBN,EAAMK,CAAG,EAAIP,EAAKC,EAAMK,CAAG,CAAE,EAC7BA,GAAMH,EACNI,GAAMH,CAER,CAKAR,GAAO,QAAUC,KC7HjB,IAAAY,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAyFA,SAASC,GAASC,EAAGC,EAAGC,EAAM,CAC7B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAkCJ,IA7BAR,EAAKT,EAAE,MACPY,EAAKZ,EAAE,QACPa,EAAKZ,EAAE,QACFD,EAAE,QAAU,aAEhBU,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXJ,EAAMO,EAAI,CAAE,EACZN,EAAMM,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBL,EAAMM,EAAI,CAAE,EACZL,EAAMK,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,IAGzBH,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXJ,EAAMO,EAAI,CAAE,EACZN,EAAMM,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBL,EAAMM,EAAI,CAAE,EACZL,EAAMK,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,GAG1BC,EAAKd,EAAE,OACPe,EAAKd,EAAE,OAGPE,EAAOH,EAAE,KACTI,EAAOH,EAAE,KAGHgB,EAAK,EAAGA,EAAKN,EAAIM,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKN,EAAIM,IACtBZ,EAAMW,CAAG,EAAIb,EAAKC,EAAMW,CAAG,CAAE,EAC7BA,GAAMT,EACNU,GAAMR,EAEPO,GAAMR,EACNS,GAAMP,CACP,CACD,CAKAV,GAAO,QAAUC,KCxJjB,IAAAmB,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAyFA,SAASC,GAASC,EAAGC,EAAGC,EAAM,CAC7B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAwCJ,IAnCAV,EAAKX,EAAE,MACPe,EAAKf,EAAE,QACPgB,EAAKf,EAAE,QACFD,EAAE,QAAU,aAEhBY,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXN,EAAMU,EAAI,CAAE,EACZT,EAAMS,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBR,EAAMQ,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBP,EAAMQ,EAAI,CAAE,EACZP,EAAMO,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBN,EAAMM,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,IAGzBJ,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXN,EAAMU,EAAI,CAAE,EACZT,EAAMS,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBR,EAAMQ,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBP,EAAMQ,EAAI,CAAE,EACZP,EAAMO,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBN,EAAMM,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,GAG1BC,EAAKjB,EAAE,OACPkB,EAAKjB,EAAE,OAGPE,EAAOH,EAAE,KACTI,EAAOH,EAAE,KAGHoB,EAAK,EAAGA,EAAKP,EAAIO,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKP,EAAIO,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKP,EAAIO,IACtBf,EAAMc,CAAG,EAAIhB,EAAKC,EAAMc,CAAG,CAAE,EAC7BA,GAAMZ,EACNa,GAAMV,EAEPS,GAAMX,EACNY,GAAMT,CACP,CACAQ,GAAMV,EACNW,GAAMR,CACP,CACD,CAKAZ,GAAO,QAAUC,KCtKjB,IAAAuB,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAyFA,SAASC,GAASC,EAAGC,EAAGC,EAAM,CAC7B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EA8CJ,IAzCAZ,EAAKb,EAAE,MACPkB,EAAKlB,EAAE,QACPmB,EAAKlB,EAAE,QACFD,EAAE,QAAU,aAEhBc,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXR,EAAMa,EAAI,CAAE,EACZZ,EAAMY,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBV,EAAMU,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBT,EAAMU,EAAI,CAAE,EACZT,EAAMS,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBR,EAAMQ,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBP,EAAMO,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,IAGzBL,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXR,EAAMa,EAAI,CAAE,EACZZ,EAAMY,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBV,EAAMU,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBT,EAAMU,EAAI,CAAE,EACZT,EAAMS,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBR,EAAMQ,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBP,EAAMO,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,GAG1BC,EAAKpB,EAAE,OACPqB,EAAKpB,EAAE,OAGPE,EAAOH,EAAE,KACTI,EAAOH,EAAE,KAGHwB,EAAK,EAAGA,EAAKR,EAAIQ,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKR,EAAIQ,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKR,EAAIQ,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKR,EAAIQ,IACtBlB,EAAMiB,CAAG,EAAInB,EAAKC,EAAMiB,CAAG,CAAE,EAC7BA,GAAMf,EACNgB,GAAMZ,EAEPW,GAAMd,EACNe,GAAMX,CACP,CACAU,GAAMb,EACNc,GAAMV,CACP,CACAS,GAAMZ,EACNa,GAAMT,CACP,CACD,CAKAd,GAAO,QAAUC,KCpLjB,IAAA2B,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAyFA,SAASC,GAASC,EAAGC,EAAGC,EAAM,CAC7B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAoDJ,IA/CAd,EAAKf,EAAE,MACPqB,EAAKrB,EAAE,QACPsB,EAAKrB,EAAE,QACFD,EAAE,QAAU,aAEhBgB,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXV,EAAMgB,EAAI,CAAE,EACZf,EAAMe,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBX,EAAMY,EAAI,CAAE,EACZX,EAAMW,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBV,EAAMU,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBT,EAAMS,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBR,EAAMQ,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,IAGzBN,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXV,EAAMgB,EAAI,CAAE,EACZf,EAAMe,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBX,EAAMY,EAAI,CAAE,EACZX,EAAMW,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBV,EAAMU,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBT,EAAMS,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBR,EAAMQ,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,GAG1BC,EAAKvB,EAAE,OACPwB,EAAKvB,EAAE,OAGPE,EAAOH,EAAE,KACTI,EAAOH,EAAE,KAGH4B,EAAK,EAAGA,EAAKT,EAAIS,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKT,EAAIS,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKT,EAAIS,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKT,EAAIS,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKT,EAAIS,IACtBrB,EAAMoB,CAAG,EAAItB,EAAKC,EAAMoB,CAAG,CAAE,EAC7BA,GAAMlB,EACNmB,GAAMd,EAEPa,GAAMjB,EACNkB,GAAMb,CACP,CACAY,GAAMhB,EACNiB,GAAMZ,CACP,CACAW,GAAMf,EACNgB,GAAMX,CACP,CACAU,GAAMd,EACNe,GAAMV,CACP,CACD,CAKAhB,GAAO,QAAUC,KClMjB,IAAA+B,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cA2FA,SAASC,GAASC,EAAGC,EAAGC,EAAM,CAC7B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EA0DJ,IArDAhB,EAAKjB,EAAE,MACPwB,EAAKxB,EAAE,QACPyB,EAAKxB,EAAE,QACFD,EAAE,QAAU,aAEhBkB,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXZ,EAAMmB,EAAI,CAAE,EACZlB,EAAMkB,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBjB,EAAMiB,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBf,EAAMe,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBb,EAAMc,EAAI,CAAE,EACZb,EAAMa,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBV,EAAMU,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBT,EAAMS,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,IAGzBP,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXZ,EAAMmB,EAAI,CAAE,EACZlB,EAAMkB,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBjB,EAAMiB,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBf,EAAMe,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBb,EAAMc,EAAI,CAAE,EACZb,EAAMa,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBV,EAAMU,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBT,EAAMS,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,GAG1BC,EAAK1B,EAAE,OACP2B,EAAK1B,EAAE,OAGPE,EAAOH,EAAE,KACTI,EAAOH,EAAE,KAGHgC,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IACtBxB,EAAMuB,CAAG,EAAIzB,EAAKC,EAAMuB,CAAG,CAAE,EAC7BA,GAAMrB,EACNsB,GAAMhB,EAEPe,GAAMpB,EACNqB,GAAMf,CACP,CACAc,GAAMnB,EACNoB,GAAMd,CACP,CACAa,GAAMlB,EACNmB,GAAMb,CACP,CACAY,GAAMjB,EACNkB,GAAMZ,CACP,CACAW,GAAMhB,EACNiB,GAAMX,CACP,CACD,CAKAlB,GAAO,QAAUC,KClNjB,IAAAmC,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cA2FA,SAASC,GAASC,EAAGC,EAAGC,EAAM,CAC7B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAgEJ,IA3DAlB,EAAKnB,EAAE,MACP2B,EAAK3B,EAAE,QACP4B,EAAK3B,EAAE,QACFD,EAAE,QAAU,aAEhBoB,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXd,EAAMsB,EAAI,CAAE,EACZrB,EAAMqB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBpB,EAAMoB,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBnB,EAAMmB,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBlB,EAAMkB,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBjB,EAAMiB,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBf,EAAMgB,EAAI,CAAE,EACZf,EAAMe,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBV,EAAMU,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,IAGzBR,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXd,EAAMsB,EAAI,CAAE,EACZrB,EAAMqB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBpB,EAAMoB,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBnB,EAAMmB,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBlB,EAAMkB,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBjB,EAAMiB,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBf,EAAMgB,EAAI,CAAE,EACZf,EAAMe,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBV,EAAMU,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,GAG1BC,EAAK7B,EAAE,OACP8B,EAAK7B,EAAE,OAGPE,EAAOH,EAAE,KACTI,EAAOH,EAAE,KAGHoC,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IACtB3B,EAAM0B,CAAG,EAAI5B,EAAKC,EAAM0B,CAAG,CAAE,EAC7BA,GAAMxB,EACNyB,GAAMlB,EAEPiB,GAAMvB,EACNwB,GAAMjB,CACP,CACAgB,GAAMtB,EACNuB,GAAMhB,CACP,CACAe,GAAMrB,EACNsB,GAAMf,CACP,CACAc,GAAMpB,EACNqB,GAAMd,CACP,CACAa,GAAMnB,EACNoB,GAAMb,CACP,CACAY,GAAMlB,EACNmB,GAAMZ,CACP,CACD,CAKApB,GAAO,QAAUC,KChOjB,IAAAuC,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cA2FA,SAASC,GAASC,EAAGC,EAAGC,EAAM,CAC7B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAsEJ,IAjEApB,EAAKrB,EAAE,MACP8B,EAAK9B,EAAE,QACP+B,EAAK9B,EAAE,QACFD,EAAE,QAAU,aAEhBsB,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXQ,EAAKR,EAAI,CAAE,EACXhB,EAAMyB,EAAI,CAAE,EACZxB,EAAMwB,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBvB,EAAMuB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBtB,EAAMsB,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBrB,EAAMqB,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBpB,EAAMoB,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBnB,EAAMmB,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBlB,EAAMkB,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBjB,EAAMkB,EAAI,CAAE,EACZjB,EAAMiB,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBf,EAAMe,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,IAGzBT,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXQ,EAAKR,EAAI,CAAE,EACXhB,EAAMyB,EAAI,CAAE,EACZxB,EAAMwB,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBvB,EAAMuB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBtB,EAAMsB,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBrB,EAAMqB,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBpB,EAAMoB,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBnB,EAAMmB,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBlB,EAAMkB,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBjB,EAAMkB,EAAI,CAAE,EACZjB,EAAMiB,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBf,EAAMe,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBX,EAAMW,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,GAG1BC,EAAKhC,EAAE,OACPiC,EAAKhC,EAAE,OAGPE,EAAOH,EAAE,KACTI,EAAOH,EAAE,KAGHwC,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IACtB9B,EAAM6B,CAAG,EAAI/B,EAAKC,EAAM6B,CAAG,CAAE,EAC7BA,GAAM3B,EACN4B,GAAMpB,EAEPmB,GAAM1B,EACN2B,GAAMnB,CACP,CACAkB,GAAMzB,EACN0B,GAAMlB,CACP,CACAiB,GAAMxB,EACNyB,GAAMjB,CACP,CACAgB,GAAMvB,EACNwB,GAAMhB,CACP,CACAe,GAAMtB,EACNuB,GAAMf,CACP,CACAc,GAAMrB,EACNsB,GAAMd,CACP,CACAa,GAAMpB,EACNqB,GAAMb,CACP,CACD,CAKAtB,GAAO,QAAUC,KC9OjB,IAAA2C,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cA2FA,SAASC,GAASC,EAAGC,EAAGC,EAAM,CAC7B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EA4EJ,IAvEAtB,EAAKvB,EAAE,MACPiC,EAAKjC,EAAE,QACPkC,EAAKjC,EAAE,QACFD,EAAE,QAAU,aAEhBwB,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXQ,EAAKR,EAAI,CAAE,EACXS,EAAKT,EAAI,CAAE,EACXlB,EAAM4B,EAAI,CAAE,EACZ3B,EAAM2B,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzB1B,EAAM0B,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBzB,EAAMyB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBxB,EAAMwB,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBvB,EAAMuB,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBtB,EAAMsB,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBrB,EAAMqB,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBpB,EAAMoB,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBnB,EAAMoB,EAAI,CAAE,EACZnB,EAAMmB,EAAI,CAAE,EAAMV,EAAGU,EAAG,CAAC,EACzBlB,EAAMkB,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzBjB,EAAMiB,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBf,EAAMe,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,IAGzBV,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXQ,EAAKR,EAAI,CAAE,EACXS,EAAKT,EAAI,CAAE,EACXlB,EAAM4B,EAAI,CAAE,EACZ3B,EAAM2B,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzB1B,EAAM0B,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBzB,EAAMyB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBxB,EAAMwB,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBvB,EAAMuB,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBtB,EAAMsB,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBrB,EAAMqB,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBpB,EAAMoB,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBnB,EAAMoB,EAAI,CAAE,EACZnB,EAAMmB,EAAI,CAAE,EAAMV,EAAGU,EAAG,CAAC,EACzBlB,EAAMkB,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzBjB,EAAMiB,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBf,EAAMe,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBZ,EAAMY,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,GAG1BC,EAAKnC,EAAE,OACPoC,EAAKnC,EAAE,OAGPE,EAAOH,EAAE,KACTI,EAAOH,EAAE,KAGH4C,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IACtBjC,EAAMgC,CAAG,EAAIlC,EAAKC,EAAMgC,CAAG,CAAE,EAC7BA,GAAM9B,EACN+B,GAAMtB,EAEPqB,GAAM7B,EACN8B,GAAMrB,CACP,CACAoB,GAAM5B,EACN6B,GAAMpB,CACP,CACAmB,GAAM3B,EACN4B,GAAMnB,CACP,CACAkB,GAAM1B,EACN2B,GAAMlB,CACP,CACAiB,GAAMzB,EACN0B,GAAMjB,CACP,CACAgB,GAAMxB,EACNyB,GAAMhB,CACP,CACAe,GAAMvB,EACNwB,GAAMf,CACP,CACAc,GAAMtB,EACNuB,GAAMd,CACP,CACD,CAKAxB,GAAO,QAAUC,KC5PjB,IAAA+C,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cA2FA,SAASC,GAAUC,EAAGC,EAAGC,EAAM,CAC9B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAkFJ,IA7EAxB,EAAKzB,EAAE,MACPoC,EAAKpC,EAAE,QACPqC,EAAKpC,EAAE,QACFD,EAAE,QAAU,aAEhB0B,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXQ,EAAKR,EAAI,CAAE,EACXS,EAAKT,EAAI,CAAE,EACXU,EAAKV,EAAI,CAAE,EACXpB,EAAM+B,EAAI,CAAE,EACZ9B,EAAM8B,EAAI,CAAE,EAAMV,EAAGU,EAAG,CAAC,EACzB7B,EAAM6B,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzB5B,EAAM4B,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzB3B,EAAM2B,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzB1B,EAAM0B,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBzB,EAAMyB,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBxB,EAAMwB,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBvB,EAAMuB,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBtB,EAAMsB,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBrB,EAAMsB,EAAI,CAAE,EACZrB,EAAMqB,EAAI,CAAE,EAAMX,EAAGW,EAAG,CAAC,EACzBpB,EAAMoB,EAAI,CAAE,EAAMV,EAAGU,EAAG,CAAC,EACzBnB,EAAMmB,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzBlB,EAAMkB,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBjB,EAAMiB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBf,EAAMe,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,IAGzBX,EAAKD,EAAI,CAAE,EACXE,EAAKF,EAAI,CAAE,EACXG,EAAKH,EAAI,CAAE,EACXI,EAAKJ,EAAI,CAAE,EACXK,EAAKL,EAAI,CAAE,EACXM,EAAKN,EAAI,CAAE,EACXO,EAAKP,EAAI,CAAE,EACXQ,EAAKR,EAAI,CAAE,EACXS,EAAKT,EAAI,CAAE,EACXU,EAAKV,EAAI,CAAE,EACXpB,EAAM+B,EAAI,CAAE,EACZ9B,EAAM8B,EAAI,CAAE,EAAMV,EAAGU,EAAG,CAAC,EACzB7B,EAAM6B,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzB5B,EAAM4B,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzB3B,EAAM2B,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzB1B,EAAM0B,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBzB,EAAMyB,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBxB,EAAMwB,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBvB,EAAMuB,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,EACzBtB,EAAMsB,EAAI,CAAE,EAAMF,EAAGE,EAAG,CAAC,EACzBrB,EAAMsB,EAAI,CAAE,EACZrB,EAAMqB,EAAI,CAAE,EAAMX,EAAGW,EAAG,CAAC,EACzBpB,EAAMoB,EAAI,CAAE,EAAMV,EAAGU,EAAG,CAAC,EACzBnB,EAAMmB,EAAI,CAAE,EAAMT,EAAGS,EAAG,CAAC,EACzBlB,EAAMkB,EAAI,CAAE,EAAMR,EAAGQ,EAAG,CAAC,EACzBjB,EAAMiB,EAAI,CAAE,EAAMP,EAAGO,EAAG,CAAC,EACzBhB,EAAMgB,EAAI,CAAE,EAAMN,EAAGM,EAAG,CAAC,EACzBf,EAAMe,EAAI,CAAE,EAAML,EAAGK,EAAG,CAAC,EACzBd,EAAMc,EAAI,CAAE,EAAMJ,EAAGI,EAAG,CAAC,EACzBb,EAAMa,EAAI,CAAE,EAAMH,EAAGG,EAAG,CAAC,GAG1BC,EAAKtC,EAAE,OACPuC,EAAKtC,EAAE,OAGPE,EAAOH,EAAE,KACTI,EAAOH,EAAE,KAGHgD,EAAK,EAAGA,EAAKd,EAAIc,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKd,EAAIc,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKd,EAAIc,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKd,EAAIc,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKd,EAAIc,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKd,EAAIc,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKd,EAAIc,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKd,EAAIc,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKd,EAAIc,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKd,EAAIc,IACtBpC,EAAMmC,CAAG,EAAIrC,EAAKC,EAAMmC,CAAG,CAAE,EAC7BA,GAAMjC,EACNkC,GAAMxB,EAEPuB,GAAMhC,EACNiC,GAAMvB,CACP,CACAsB,GAAM/B,EACNgC,GAAMtB,CACP,CACAqB,GAAM9B,EACN+B,GAAMrB,CACP,CACAoB,GAAM7B,EACN8B,GAAMpB,CACP,CACAmB,GAAM5B,EACN6B,GAAMnB,CACP,CACAkB,GAAM3B,EACN4B,GAAMlB,CACP,CACAiB,GAAM1B,EACN2B,GAAMjB,CACP,CACAgB,GAAMzB,EACN0B,GAAMhB,CACP,CACAe,GAAMxB,EACNyB,GAAMf,CACP,CACD,CAKA1B,GAAO,QAAUC,KC1QjB,IAAAmD,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAsBA,IAAIC,GAAQ,KACRC,GAAY,KAKZC,GAAO,QAwEX,SAASC,GAASC,EAAGC,EAAGC,EAAM,CAC7B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAwBJ,IAtBAP,EAAKR,EAAE,MAGPO,EAAMX,GAAOY,CAAG,EAGhBL,EAAOH,EAAE,KACTI,EAAOH,EAAE,KAGTQ,EAAKT,EAAE,QACPU,EAAKT,EAAE,QAGPU,EAAKX,EAAE,OACPY,EAAKX,EAAE,OAGPI,EAAOL,EAAE,MACTM,EAAOL,EAAE,MAGHc,EAAI,EAAGA,EAAIR,EAAKQ,IACrBF,EAAKhB,GAAWW,EAAIC,EAAIE,EAAIN,EAAMU,EAAGjB,EAAK,EAC1CgB,EAAKjB,GAAWW,EAAIE,EAAIE,EAAIN,EAAMS,EAAGjB,EAAK,EAC1CM,EAAMU,CAAG,EAAIZ,EAAKC,EAAMU,CAAG,CAAE,CAE/B,CAKAlB,GAAO,QAAUI,KCnJjB,IAAAiB,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAsBA,IAAIC,GAAiB,KACjBC,GAAwB,KACxBC,GAAiB,KACjBC,GAAyB,KACzBC,GAAyB,KACzBC,GAAyB,KACzBC,GAAyB,KACzBC,GAAyB,KACzBC,GAAyB,KACzBC,GAAyB,KACzBC,GAAyB,KACzBC,GAA0B,KAC1BC,GAAiB,KACjBC,GAAiB,KACjBC,GAAiB,KACjBC,GAAiB,KACjBC,GAAiB,KACjBC,GAAiB,KACjBC,GAAiB,KACjBC,GAAiB,KACjBC,GAAkB,KAClBC,GAAkB,KAClBC,GAAkB,KAClBC,GAAkB,KAClBC,GAAkB,KAClBC,GAAkB,KAClBC,GAAkB,KAClBC,GAAkB,KAClBC,GAAkB,KAClBC,GAAkB,KAClBC,GAAkB,KAClBC,GAAmB,KACnBC,GAAkB,KAClBC,GAAU,KACVC,GAAU,KACVC,GAAU,KACVC,GAAU,KACVC,GAAU,KACVC,GAAU,KACVC,GAAU,KACVC,GAAU,KACVC,GAAU,KACVC,GAAU,KACVC,GAAW,KACXC,GAAU,KAKVC,GAAQ,CACXZ,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,EACD,EACIG,GAAiB,CACpBzB,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,EACD,EACIgB,GAAgB,CACnBnC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,EACD,EACI4B,GAAyB,CAC5B7C,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,EACD,EACIsC,GAAWJ,GAAM,OAAS,EAuE9B,SAASK,GAAOC,EAAQC,EAAM,CAC7B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAUJ,GAPAH,EAAIhE,GAAgBiD,EAAQ,CAAE,CAAE,EAChCgB,EAAIjE,GAAgBiD,EAAQ,CAAE,CAAE,EAGhCK,EAAMU,EAAE,MACRT,EAAMU,EAAE,MACRd,EAAQG,EAAI,OACPH,IAAUI,EAAI,OAClB,MAAM,IAAI,MAAO,oGAAoGJ,EAAM,iBAAiBI,EAAI,OAAO,GAAI,EAG5J,GAAKJ,IAAU,EACd,OAAKa,EAAE,kBAAoBC,EAAE,iBACrBrB,GAAgBO,CAAM,EAAGa,EAAGC,EAAGf,CAAI,EAEpCP,GAAOQ,CAAM,EAAGa,EAAGC,EAAGf,CAAI,EAKlC,IAFAQ,EAAM,EACNK,EAAK,EACCI,EAAI,EAAGA,EAAIhB,EAAOgB,IAAM,CAE7B,GADAD,EAAIZ,EAAKa,CAAE,EACND,IAAMX,EAAKY,CAAE,EACjB,MAAM,IAAI,MAAO,qDAAsD,EAGxET,GAAOQ,EAGFA,IAAM,IACVH,GAAM,EAER,CAEA,GAAKL,IAAQ,EAIb,IAAKP,IAAU,EACd,OAAKa,EAAE,kBAAoBC,EAAE,iBACrBrB,GAAgBO,CAAM,EAAGa,EAAGC,EAAGf,CAAI,EAEpCP,GAAOQ,CAAM,EAAGa,EAAGC,EAAGf,CAAI,EAMlC,GAJAS,EAAKK,EAAE,QACPJ,EAAKK,EAAE,QAGFF,IAAOZ,EAAM,EAAI,CAErB,IAAMgB,EAAI,EAAGA,EAAIhB,GACXG,EAAKa,CAAE,IAAM,EADKA,IACvB,CAQD,OAJAH,EAAE,MAAQ,CAAEV,EAAIa,CAAC,CAAE,EACnBF,EAAE,MAAQD,EAAE,MACZA,EAAE,QAAU,CAAEL,EAAGQ,CAAC,CAAE,EACpBF,EAAE,QAAU,CAAEL,EAAGO,CAAC,CAAE,EACfH,EAAE,kBAAoBC,EAAE,iBACrBrB,GAAgB,CAAE,EAAGoB,EAAGC,EAAGf,CAAI,EAEhCP,GAAO,CAAE,EAAGqB,EAAGC,EAAGf,CAAI,CAC9B,CAKA,GAJAM,EAAM1D,GAAgB6D,CAAG,EACzBF,EAAM3D,GAAgB8D,CAAG,EAGpBJ,IAAQ,GAAKC,IAAQ,GAAKO,EAAE,QAAUC,EAAE,MAAQ,CAMpD,GAJAb,EAAOrD,GAAuBuD,EAAKK,EAAIK,EAAE,MAAO,EAChDX,EAAOtD,GAAuBwD,EAAKK,EAAIK,EAAE,MAAO,EAG3CP,IAAUN,EAAK,CAAC,EAAEA,EAAK,CAAC,EAAE,GAAOM,IAAUL,EAAK,CAAC,EAAEA,EAAK,CAAC,EAAE,EAkB/D,OAhBKG,IAAQ,EACZK,EAAKT,EAAM,CAAE,EAEbS,EAAKT,EAAM,CAAE,EAETK,IAAQ,EACZK,EAAKT,EAAM,CAAE,EAEbS,EAAKT,EAAM,CAAE,EAEdW,EAAE,MAAQ,CAAEN,CAAI,EAChBO,EAAE,MAAQD,EAAE,MACZA,EAAE,QAAU,CAAER,CAAI,EAClBS,EAAE,QAAU,CAAER,CAAI,EAClBO,EAAE,OAASH,EACXI,EAAE,OAASH,EACNE,EAAE,kBAAoBC,EAAE,iBACrBrB,GAAgB,CAAE,EAAGoB,EAAGC,EAAGf,CAAI,EAEhCP,GAAO,CAAE,EAAGqB,EAAGC,EAAGf,CAAI,EAK9B,GAAKC,GAASJ,GAEb,OAAKiB,EAAE,kBAAoBC,EAAE,iBACrBrB,GAAgBO,CAAM,EAAGa,EAAGC,EAAGf,CAAI,EAEpCP,GAAOQ,CAAM,EAAGa,EAAGC,EAAGf,CAAI,CAGnC,CAIA,GAAKC,GAASJ,GACb,OAAKiB,EAAE,kBAAoBC,EAAE,iBACrBnB,GAAwBK,EAAM,CAAE,EAAGa,EAAGC,EAAGf,CAAI,EAE9CL,GAAeM,EAAM,CAAE,EAAGa,EAAGC,EAAGf,CAAI,EAG5C,GAAKc,EAAE,kBAAoBC,EAAE,iBAC5B,OAAOnC,GAAiBkC,EAAGC,EAAGf,CAAI,EAEnCR,GAASsB,EAAGC,EAAGf,CAAI,EACpB,CAKArD,GAAO,QAAUmD,KClVjB,IAAAoB,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cA2EA,IAAIC,GAAO,KAKXD,GAAO,QAAUC,KChFjB,IAAAC,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwBA,IAAIC,GAAY,KACZC,GAAY,KA+FhB,SAASC,GAAgBC,EAAGC,EAAGC,EAAKC,EAAMC,EAAU,CACnD,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EA+BJ,IA1BAF,EAAIhC,GAAWG,EAAE,MAAOA,EAAE,QAASC,EAAE,OAAQ,EAC7Ce,EAAKa,EAAE,GACPV,EAAKU,EAAE,GACPT,EAAKS,EAAE,GAGPxB,EAAQP,GAAWE,EAAE,MAAOC,EAAE,KAAM,EAGpCoB,EAAKrB,EAAE,OACPsB,EAAKrB,EAAE,OAGPK,EAAON,EAAE,KACTO,EAAON,EAAE,KAGTS,EAAMS,EAAG,CAAC,EACVP,EAAMQ,EAAG,CAAC,EAGVZ,EAAMR,EAAE,UAAU,CAAC,EACnBS,EAAMR,EAAE,UAAU,CAAC,EAGnB8B,EAAI,EACEH,EAAKZ,EAAG,CAAC,EAAGY,EAAK,GAUtB,IATKA,EAAKvB,GACTa,EAAKU,EACLA,EAAK,IAELV,EAAKb,EACLuB,GAAMvB,GAEPS,EAAMO,EAAOO,EAAGT,EAAG,CAAC,EACpBJ,EAAMO,EAAOM,EAAGR,EAAG,CAAC,EACdO,EAAKX,EAAG,CAAC,EAAGW,EAAK,GAiBtB,IAhBKA,EAAKtB,GACTY,EAAKU,EACLA,EAAK,IAELV,EAAKZ,EACLsB,GAAMtB,GAGPkB,EAAKT,EAAQa,EAAGR,EAAG,CAAC,EACpBK,EAAKT,EAAQY,EAAGP,EAAG,CAAC,EAGpBT,EAAMQ,EAAG,CAAC,EAAMF,EAAGE,EAAG,CAAC,EACvBN,EAAMO,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EAGjBM,EAAK,EAAGA,EAAKR,EAAIQ,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKR,EAAIQ,IACtBK,EAAI3B,EAAK,KAAMC,EAASI,EAAKF,EAAMiB,CAAG,EAAGQ,EAAG,CAAER,EAAIC,CAAG,EAAG,CAAExB,EAAGC,CAAE,CAAE,EAC5D6B,IAAM,QACVrB,EAAKF,EAAMiB,EAAItB,EAAK4B,CAAE,CAAE,EAEzBP,GAAMb,EACNc,GAAMZ,EACNmB,GAAK,EAENR,GAAMZ,EACNa,GAAMX,CACP,CAGH,CAKAjB,GAAO,QAAUG,KCjOjB,IAAAiC,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwBA,IAAIC,GAAY,KACZC,GAAY,KA+FhB,SAASC,GAAgBC,EAAGC,EAAGC,EAAKC,EAAMC,EAAU,CACnD,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EA+BJ,IA1BAF,EAAIvC,GAAWG,EAAE,MAAOA,EAAE,QAASC,EAAE,OAAQ,EAC7CmB,EAAKgB,EAAE,GACPZ,EAAKY,EAAE,GACPX,EAAKW,EAAE,GAGP/B,EAAQP,GAAWE,EAAE,MAAOC,EAAE,KAAM,EAGpCyB,EAAK1B,EAAE,OACP2B,EAAK1B,EAAE,OAGPK,EAAON,EAAE,KACTO,EAAON,EAAE,KAGTS,EAAMc,EAAG,CAAC,EACVX,EAAMY,EAAG,CAAC,EAGVjB,EAAMR,EAAE,UAAU,CAAC,EACnBS,EAAMR,EAAE,UAAU,CAAC,EAGnBqC,EAAI,EACEH,EAAKf,EAAG,CAAC,EAAGe,EAAK,GAUtB,IATKA,EAAK9B,GACTkB,EAAKY,EACLA,EAAK,IAELZ,EAAKlB,EACL8B,GAAM9B,GAEPY,EAAMS,EAAOS,EAAGX,EAAG,CAAC,EACpBL,EAAMQ,EAAOQ,EAAGV,EAAG,CAAC,EACdS,EAAKd,EAAG,CAAC,EAAGc,EAAK,GAYtB,IAXKA,EAAK7B,GACTiB,EAAKY,EACLA,EAAK,IAELZ,EAAKjB,EACL6B,GAAM7B,GAEPO,EAAMY,EAAG,CAAC,EAAMF,EAAGE,EAAG,CAAC,EACvBT,EAAMU,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBT,EAAMC,EAAQiB,EAAGV,EAAG,CAAC,EACrBN,EAAMC,EAAQe,EAAGT,EAAG,CAAC,EACfQ,EAAKb,EAAG,CAAC,EAAGa,EAAK,GAiBtB,IAhBKA,EAAK5B,GACTgB,EAAKY,EACLA,EAAK,IAELZ,EAAKhB,EACL4B,GAAM5B,GAGPuB,EAAKZ,EAAQiB,EAAGT,EAAG,CAAC,EACpBK,EAAKX,EAAQe,EAAGR,EAAG,CAAC,EAGpBd,EAAMa,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBV,EAAMW,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EAGjBO,EAAK,EAAGA,EAAKT,EAAIS,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKT,EAAIS,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKT,EAAIS,IACtBO,EAAIlC,EAAK,KAAMC,EAASI,EAAKF,EAAMsB,CAAG,EAAGU,EAAG,CAAEV,EAAIC,CAAG,EAAG,CAAE7B,EAAGC,CAAE,CAAE,EAC5DoC,IAAM,QACV5B,EAAKF,EAAMsB,EAAI3B,EAAKmC,CAAE,CAAE,EAEzBT,GAAMlB,EACNmB,GAAMhB,EACNyB,GAAK,EAENV,GAAMjB,EACNkB,GAAMf,CACP,CACAc,GAAMhB,EACNiB,GAAMd,CACP,CAIJ,CAKAnB,GAAO,QAAUG,KCzPjB,IAAAwC,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwBA,IAAIC,GAAY,KACZC,GAAY,KA+FhB,SAASC,GAAgBC,EAAGC,EAAGC,EAAKC,EAAMC,EAAU,CACnD,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EA+BJ,IA1BAF,EAAI9C,GAAWG,EAAE,MAAOA,EAAE,QAASC,EAAE,OAAQ,EAC7CuB,EAAKmB,EAAE,GACPd,EAAKc,EAAE,GACPb,EAAKa,EAAE,GAGPtC,EAAQP,GAAWE,EAAE,MAAOC,EAAE,KAAM,EAGpC8B,EAAK/B,EAAE,OACPgC,EAAK/B,EAAE,OAGPK,EAAON,EAAE,KACTO,EAAON,EAAE,KAGTS,EAAMmB,EAAG,CAAC,EACVf,EAAMgB,EAAG,CAAC,EAGVtB,EAAMR,EAAE,UAAU,CAAC,EACnBS,EAAMR,EAAE,UAAU,CAAC,EAGnB4C,EAAI,EACEH,EAAKlB,EAAG,CAAC,EAAGkB,EAAK,GAUtB,IATKA,EAAKrC,GACTuB,EAAKc,EACLA,EAAK,IAELd,EAAKvB,EACLqC,GAAMrC,GAEPe,EAAMW,EAAOW,EAAGb,EAAG,CAAC,EACpBN,EAAMS,EAAOU,EAAGZ,EAAG,CAAC,EACdW,EAAKjB,EAAG,CAAC,EAAGiB,EAAK,GAYtB,IAXKA,EAAKpC,GACTsB,EAAKc,EACLA,EAAK,IAELd,EAAKtB,EACLoC,GAAMpC,GAEPQ,EAAMgB,EAAG,CAAC,EAAMF,EAAGE,EAAG,CAAC,EACvBZ,EAAMa,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBX,EAAMC,EAAQqB,EAAGZ,EAAG,CAAC,EACrBP,EAAMC,EAAQkB,EAAGX,EAAG,CAAC,EACfU,EAAKhB,EAAG,CAAC,EAAGgB,EAAK,GAYtB,IAXKA,EAAKnC,GACTqB,EAAKc,EACLA,EAAK,IAELd,EAAKrB,EACLmC,GAAMnC,GAEPO,EAAMiB,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBb,EAAMc,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EACvBZ,EAAMC,EAAQqB,EAAGX,EAAG,CAAC,EACrBR,EAAMC,EAAQkB,EAAGV,EAAG,CAAC,EACfS,EAAKf,EAAG,CAAC,EAAGe,EAAK,GAiBtB,IAhBKA,EAAKlC,GACToB,EAAKc,EACLA,EAAK,IAELd,EAAKpB,EACLkC,GAAMlC,GAGP4B,EAAKf,EAAQqB,EAAGV,EAAG,CAAC,EACpBK,EAAKb,EAAQkB,EAAGT,EAAG,CAAC,EAGpBnB,EAAMkB,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EACvBd,EAAMe,EAAG,CAAC,EAAML,EAAGK,EAAG,CAAC,EAGjBQ,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKV,EAAIU,IACtBS,EAAIzC,EAAK,KAAMC,EAASI,EAAKF,EAAM2B,CAAG,EAAGY,EAAG,CAAEZ,EAAIC,CAAG,EAAG,CAAElC,EAAGC,CAAE,CAAE,EAC5D2C,IAAM,QACVnC,EAAKF,EAAM2B,EAAIhC,EAAK0C,CAAE,CAAE,EAEzBX,GAAMvB,EACNwB,GAAMpB,EACN+B,GAAK,EAENZ,GAAMtB,EACNuB,GAAMnB,CACP,CACAkB,GAAMrB,EACNsB,GAAMlB,CACP,CACAiB,GAAMpB,EACNqB,GAAMjB,CACP,CAKL,CAKArB,GAAO,QAAUG,KCjRjB,IAAA+C,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwBA,IAAIC,GAAY,KACZC,GAAY,KA+FhB,SAASC,GAAgBC,EAAGC,EAAGC,EAAKC,EAAMC,EAAU,CACnD,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EA+BJ,IA1BAF,EAAIrD,GAAWG,EAAE,MAAOA,EAAE,QAASC,EAAE,OAAQ,EAC7C2B,EAAKsB,EAAE,GACPhB,EAAKgB,EAAE,GACPf,EAAKe,EAAE,GAGP7C,EAAQP,GAAWE,EAAE,MAAOC,EAAE,KAAM,EAGpCmC,EAAKpC,EAAE,OACPqC,EAAKpC,EAAE,OAGPK,EAAON,EAAE,KACTO,EAAON,EAAE,KAGTS,EAAMwB,EAAG,CAAC,EACVnB,EAAMoB,EAAG,CAAC,EAGV3B,EAAMR,EAAE,UAAU,CAAC,EACnBS,EAAMR,EAAE,UAAU,CAAC,EAGnBmD,EAAI,EACEH,EAAKrB,EAAG,CAAC,EAAGqB,EAAK,GAUtB,IATKA,EAAK5C,GACT4B,EAAKgB,EACLA,EAAK,IAELhB,EAAK5B,EACL4C,GAAM5C,GAEPkB,EAAMa,EAAOa,EAAGf,EAAG,CAAC,EACpBP,EAAMU,EAAOY,EAAGd,EAAG,CAAC,EACda,EAAKpB,EAAG,CAAC,EAAGoB,EAAK,GAYtB,IAXKA,EAAK3C,GACT2B,EAAKgB,EACLA,EAAK,IAELhB,EAAK3B,EACL2C,GAAM3C,GAEPS,EAAMoB,EAAG,CAAC,EAAMF,EAAGE,EAAG,CAAC,EACvBf,EAAMgB,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBb,EAAMC,EAAQyB,EAAGd,EAAG,CAAC,EACrBR,EAAMC,EAAQqB,EAAGb,EAAG,CAAC,EACfY,EAAKnB,EAAG,CAAC,EAAGmB,EAAK,GAYtB,IAXKA,EAAK1C,GACT0B,EAAKgB,EACLA,EAAK,IAELhB,EAAK1B,EACL0C,GAAM1C,GAEPQ,EAAMqB,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBhB,EAAMiB,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EACvBd,EAAMC,EAAQyB,EAAGb,EAAG,CAAC,EACrBT,EAAMC,EAAQqB,EAAGZ,EAAG,CAAC,EACfW,EAAKlB,EAAG,CAAC,EAAGkB,EAAK,GAYtB,IAXKA,EAAKzC,GACTyB,EAAKgB,EACLA,EAAK,IAELhB,EAAKzB,EACLyC,GAAMzC,GAEPO,EAAMsB,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EACvBjB,EAAMkB,EAAG,CAAC,EAAML,EAAGK,EAAG,CAAC,EACvBf,EAAMC,EAAQyB,EAAGZ,EAAG,CAAC,EACrBV,EAAMC,EAAQqB,EAAGX,EAAG,CAAC,EACfU,EAAKjB,EAAG,CAAC,EAAGiB,EAAK,GAiBtB,IAhBKA,EAAKxC,GACTwB,EAAKgB,EACLA,EAAK,IAELhB,EAAKxB,EACLwC,GAAMxC,GAGPiC,EAAKlB,EAAQyB,EAAGX,EAAG,CAAC,EACpBK,EAAKf,EAAQqB,EAAGV,EAAG,CAAC,EAGpBxB,EAAMuB,EAAG,CAAC,EAAML,EAAGK,EAAG,CAAC,EACvBlB,EAAMmB,EAAG,CAAC,EAAMN,EAAGM,EAAG,CAAC,EAGjBS,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKX,EAAIW,IACtBW,EAAIhD,EAAK,KAAMC,EAASI,EAAKF,EAAMgC,CAAG,EAAGc,EAAG,CAAEd,EAAIC,CAAG,EAAG,CAAEvC,EAAGC,CAAE,CAAE,EAC5DkD,IAAM,QACV1C,EAAKF,EAAMgC,EAAIrC,EAAKiD,CAAE,CAAE,EAEzBb,GAAM5B,EACN6B,GAAMxB,EACNqC,GAAK,EAENd,GAAM3B,EACN4B,GAAMvB,CACP,CACAsB,GAAM1B,EACN2B,GAAMtB,CACP,CACAqB,GAAMzB,EACN0B,GAAMrB,CACP,CACAoB,GAAMxB,EACNyB,GAAMpB,CACP,CAMN,CAKAvB,GAAO,QAAUG,KCzSjB,IAAAsD,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwBA,IAAIC,GAAY,KACZC,GAAY,KA+FhB,SAASC,GAAgBC,EAAGC,EAAGC,EAAKC,EAAMC,EAAU,CACnD,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GA+BJ,IA1BAF,GAAI5D,GAAWG,EAAE,MAAOA,EAAE,QAASC,EAAE,OAAQ,EAC7C+B,EAAKyB,GAAE,GACPlB,EAAKkB,GAAE,GACPjB,EAAKiB,GAAE,GAGPpD,EAAQP,GAAWE,EAAE,MAAOC,EAAE,KAAM,EAGpCwC,EAAKzC,EAAE,OACP0C,EAAKzC,EAAE,OAGPK,EAAON,EAAE,KACTO,EAAON,EAAE,KAGTS,EAAM6B,EAAG,CAAC,EACVvB,EAAMwB,EAAG,CAAC,EAGVhC,EAAMR,EAAE,UAAU,CAAC,EACnBS,EAAMR,EAAE,UAAU,CAAC,EAGnB0D,GAAI,EACEH,GAAKxB,EAAG,CAAC,EAAGwB,GAAK,GAUtB,IATKA,GAAKnD,GACTiC,EAAKkB,GACLA,GAAK,IAELlB,EAAKjC,EACLmD,IAAMnD,GAEPqB,EAAMe,EAAOe,GAAGjB,EAAG,CAAC,EACpBR,EAAMW,EAAOc,GAAGhB,EAAG,CAAC,EACde,GAAKvB,EAAG,CAAC,EAAGuB,GAAK,GAYtB,IAXKA,GAAKlD,GACTgC,EAAKkB,GACLA,GAAK,IAELlB,EAAKhC,EACLkD,IAAMlD,GAEPU,EAAMwB,EAAG,CAAC,EAAMF,EAAGE,EAAG,CAAC,EACvBlB,EAAMmB,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBf,EAAMC,EAAQ6B,GAAGhB,EAAG,CAAC,EACrBT,EAAMC,EAAQwB,GAAGf,EAAG,CAAC,EACfc,GAAKtB,EAAG,CAAC,EAAGsB,GAAK,GAYtB,IAXKA,GAAKjD,GACT+B,EAAKkB,GACLA,GAAK,IAELlB,EAAK/B,EACLiD,IAAMjD,GAEPS,EAAMyB,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBnB,EAAMoB,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EACvBhB,EAAMC,EAAQ6B,GAAGf,EAAG,CAAC,EACrBV,EAAMC,EAAQwB,GAAGd,EAAG,CAAC,EACfa,GAAKrB,EAAG,CAAC,EAAGqB,GAAK,GAYtB,IAXKA,GAAKhD,GACT8B,EAAKkB,GACLA,GAAK,IAELlB,EAAK9B,EACLgD,IAAMhD,GAEPQ,EAAM0B,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EACvBpB,EAAMqB,EAAG,CAAC,EAAML,EAAGK,EAAG,CAAC,EACvBjB,EAAMC,EAAQ6B,GAAGd,EAAG,CAAC,EACrBX,EAAMC,EAAQwB,GAAGb,EAAG,CAAC,EACfY,EAAKpB,EAAG,CAAC,EAAGoB,EAAK,GAYtB,IAXKA,EAAK/C,GACT6B,EAAKkB,EACLA,EAAK,IAELlB,EAAK7B,EACL+C,GAAM/C,GAEPO,EAAM2B,EAAG,CAAC,EAAML,EAAGK,EAAG,CAAC,EACvBrB,EAAMsB,EAAG,CAAC,EAAMN,EAAGM,EAAG,CAAC,EACvBlB,EAAMC,EAAQ6B,EAAGb,EAAG,CAAC,EACrBZ,EAAMC,EAAQwB,EAAGZ,EAAG,CAAC,EACfW,EAAKnB,EAAG,CAAC,EAAGmB,EAAK,GAiBtB,IAhBKA,EAAK9C,GACT4B,EAAKkB,EACLA,EAAK,IAELlB,EAAK5B,EACL8C,GAAM9C,GAGPsC,EAAKrB,EAAQ6B,EAAGZ,EAAG,CAAC,EACpBK,EAAKjB,EAAQwB,EAAGX,EAAG,CAAC,EAGpB7B,EAAM4B,EAAG,CAAC,EAAMN,EAAGM,EAAG,CAAC,EACvBtB,EAAMuB,EAAG,CAAC,EAAMP,EAAGO,EAAG,CAAC,EAGjBU,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKZ,EAAIY,IACtBa,GAAIvD,EAAK,KAAMC,EAASI,EAAKF,EAAMqC,CAAG,EAAGgB,GAAG,CAAEhB,EAAIC,CAAG,EAAG,CAAE5C,EAAGC,CAAE,CAAE,EAC5DyD,KAAM,QACVjD,EAAKF,EAAMqC,EAAI1C,EAAKwD,EAAE,CAAE,EAEzBf,GAAMjC,EACNkC,GAAM5B,EACN2C,IAAK,EAENhB,GAAMhC,EACNiC,GAAM3B,CACP,CACA0B,GAAM/B,EACNgC,GAAM1B,CACP,CACAyB,GAAM9B,EACN+B,GAAMzB,CACP,CACAwB,GAAM7B,EACN8B,GAAMxB,CACP,CACAuB,GAAM5B,EACN6B,GAAMvB,CACP,CAOP,CAKAzB,GAAO,QAAUG,KCjUjB,IAAA6D,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwBA,IAAIC,GAAY,KACZC,GAAY,KA+FhB,SAASC,GAAgBC,EAAGC,EAAGC,EAAKC,EAAMC,EAAU,CACnD,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GA+BJ,IA1BAF,GAAInE,GAAWG,EAAE,MAAOA,EAAE,QAASC,EAAE,OAAQ,EAC7CmC,EAAK4B,GAAE,GACPpB,EAAKoB,GAAE,GACPnB,EAAKmB,GAAE,GAGP3D,EAAQP,GAAWE,EAAE,MAAOC,EAAE,KAAM,EAGpC6C,EAAK9C,EAAE,OACP+C,EAAK9C,EAAE,OAGPK,EAAON,EAAE,KACTO,EAAON,EAAE,KAGTS,EAAMkC,EAAG,CAAC,EACV3B,EAAM4B,EAAG,CAAC,EAGVrC,EAAMR,EAAE,UAAU,CAAC,EACnBS,EAAMR,EAAE,UAAU,CAAC,EAGnBiE,GAAI,EACEH,GAAK3B,EAAG,CAAC,EAAG2B,GAAK,GAUtB,IATKA,GAAK1D,GACTsC,EAAKoB,GACLA,GAAK,IAELpB,EAAKtC,EACL0D,IAAM1D,GAEPwB,EAAMiB,EAAOiB,GAAGnB,EAAG,CAAC,EACpBT,EAAMY,EAAOgB,GAAGlB,EAAG,CAAC,EACdiB,GAAK1B,EAAG,CAAC,EAAG0B,GAAK,GAYtB,IAXKA,GAAKzD,GACTqC,EAAKoB,GACLA,GAAK,IAELpB,EAAKrC,EACLyD,IAAMzD,GAEPW,EAAM4B,EAAG,CAAC,EAAMF,EAAGE,EAAG,CAAC,EACvBrB,EAAMsB,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBjB,EAAMC,EAAQiC,GAAGlB,EAAG,CAAC,EACrBV,EAAMC,EAAQ2B,GAAGjB,EAAG,CAAC,EACfgB,GAAKzB,EAAG,CAAC,EAAGyB,GAAK,GAYtB,IAXKA,GAAKxD,GACToC,EAAKoB,GACLA,GAAK,IAELpB,EAAKpC,EACLwD,IAAMxD,GAEPU,EAAM6B,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBtB,EAAMuB,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EACvBlB,EAAMC,EAAQiC,GAAGjB,EAAG,CAAC,EACrBX,EAAMC,EAAQ2B,GAAGhB,EAAG,CAAC,EACfe,GAAKxB,EAAG,CAAC,EAAGwB,GAAK,GAYtB,IAXKA,GAAKvD,GACTmC,EAAKoB,GACLA,GAAK,IAELpB,EAAKnC,EACLuD,IAAMvD,GAEPS,EAAM8B,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EACvBvB,EAAMwB,EAAG,CAAC,EAAML,EAAGK,EAAG,CAAC,EACvBnB,EAAMC,EAAQiC,GAAGhB,EAAG,CAAC,EACrBZ,EAAMC,EAAQ2B,GAAGf,EAAG,CAAC,EACfc,GAAKvB,EAAG,CAAC,EAAGuB,GAAK,GAYtB,IAXKA,GAAKtD,GACTkC,EAAKoB,GACLA,GAAK,IAELpB,EAAKlC,EACLsD,IAAMtD,GAEPQ,EAAM+B,EAAG,CAAC,EAAML,EAAGK,EAAG,CAAC,EACvBxB,EAAMyB,EAAG,CAAC,EAAMN,EAAGM,EAAG,CAAC,EACvBpB,EAAMC,EAAQiC,GAAGf,EAAG,CAAC,EACrBb,EAAMC,EAAQ2B,GAAGd,EAAG,CAAC,EACfa,GAAKtB,EAAG,CAAC,EAAGsB,GAAK,GAYtB,IAXKA,GAAKrD,GACTiC,EAAKoB,GACLA,GAAK,IAELpB,EAAKjC,EACLqD,IAAMrD,GAEPO,EAAMgC,EAAG,CAAC,EAAMN,EAAGM,EAAG,CAAC,EACvBzB,EAAM0B,EAAG,CAAC,EAAMP,EAAGO,EAAG,CAAC,EACvBrB,EAAMC,EAAQiC,GAAGd,EAAG,CAAC,EACrBd,EAAMC,EAAQ2B,GAAGb,EAAG,CAAC,EACfY,GAAKrB,EAAG,CAAC,EAAGqB,GAAK,GAiBtB,IAhBKA,GAAKpD,GACTgC,EAAKoB,GACLA,GAAK,IAELpB,EAAKhC,EACLoD,IAAMpD,GAGP2C,EAAKxB,EAAQiC,GAAGb,EAAG,CAAC,EACpBK,EAAKnB,EAAQ2B,GAAGZ,EAAG,CAAC,EAGpBlC,EAAMiC,EAAG,CAAC,EAAMP,EAAGO,EAAG,CAAC,EACvB1B,EAAM2B,EAAG,CAAC,EAAMR,EAAGQ,EAAG,CAAC,EAGjBW,GAAK,EAAGA,GAAKb,EAAIa,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKb,EAAIa,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKb,EAAIa,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKb,EAAIa,KAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IAAO,CAC7B,IAAMD,EAAK,EAAGA,EAAKb,EAAIa,IACtBe,GAAI9D,EAAK,KAAMC,EAASI,EAAKF,EAAM0C,CAAG,EAAGkB,GAAG,CAAElB,EAAIC,CAAG,EAAG,CAAEjD,EAAGC,CAAE,CAAE,EAC5DgE,KAAM,QACVxD,EAAKF,EAAM0C,EAAI/C,EAAK+D,EAAE,CAAE,EAEzBjB,GAAMtC,EACNuC,GAAMhC,EACNiD,IAAK,EAENlB,GAAMrC,EACNsC,GAAM/B,CACP,CACA8B,GAAMpC,EACNqC,GAAM9B,CACP,CACA6B,GAAMnC,EACNoC,GAAM7B,CACP,CACA4B,GAAMlC,EACNmC,GAAM5B,CACP,CACA2B,GAAMjC,EACNkC,GAAM3B,CACP,CACA0B,GAAMhC,EACNiC,GAAM1B,CACP,CAQR,CAKA3B,GAAO,QAAUG,KCzVjB,IAAAoE,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwBA,IAAIC,GAAY,KACZC,GAAY,KA+FhB,SAASC,GAAgBC,EAAGC,EAAGC,EAAKC,EAAMC,EAAU,CACnD,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GA+BJ,IA1BAF,GAAI1E,GAAWG,EAAE,MAAOA,EAAE,QAASC,EAAE,OAAQ,EAC7CuC,EAAK+B,GAAE,GACPtB,EAAKsB,GAAE,GACPrB,EAAKqB,GAAE,GAGPlE,EAAQP,GAAWE,EAAE,MAAOC,EAAE,KAAM,EAGpCkD,EAAKnD,EAAE,OACPoD,EAAKnD,EAAE,OAGPK,EAAON,EAAE,KACTO,EAAON,EAAE,KAGTS,EAAMuC,EAAG,CAAC,EACV/B,EAAMgC,EAAG,CAAC,EAGV1C,EAAMR,EAAE,UAAU,CAAC,EACnBS,EAAMR,EAAE,UAAU,CAAC,EAGnBwE,GAAI,EACEH,GAAK9B,EAAG,CAAC,EAAG8B,GAAK,GAUtB,IATKA,GAAKjE,GACT2C,EAAKsB,GACLA,GAAK,IAELtB,EAAK3C,EACLiE,IAAMjE,GAEP2B,EAAMmB,EAAOmB,GAAGrB,EAAG,CAAC,EACpBV,EAAMa,EAAOkB,GAAGpB,EAAG,CAAC,EACdmB,GAAK7B,EAAG,CAAC,EAAG6B,GAAK,GAYtB,IAXKA,GAAKhE,GACT0C,EAAKsB,GACLA,GAAK,IAELtB,EAAK1C,EACLgE,IAAMhE,GAEPY,EAAMgC,EAAG,CAAC,EAAMF,EAAGE,EAAG,CAAC,EACvBxB,EAAMyB,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBnB,EAAMC,EAAQqC,GAAGpB,EAAG,CAAC,EACrBX,EAAMC,EAAQ8B,GAAGnB,EAAG,CAAC,EACfkB,GAAK5B,EAAG,CAAC,EAAG4B,GAAK,GAYtB,IAXKA,GAAK/D,GACTyC,EAAKsB,GACLA,GAAK,IAELtB,EAAKzC,EACL+D,IAAM/D,GAEPW,EAAMiC,EAAG,CAAC,EAAMH,EAAGG,EAAG,CAAC,EACvBzB,EAAM0B,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EACvBpB,EAAMC,EAAQqC,GAAGnB,EAAG,CAAC,EACrBZ,EAAMC,EAAQ8B,GAAGlB,EAAG,CAAC,EACfiB,GAAK3B,EAAG,CAAC,EAAG2B,GAAK,GAYtB,IAXKA,GAAK9D,GACTwC,EAAKsB,GACLA,GAAK,IAELtB,EAAKxC,EACL8D,IAAM9D,GAEPU,EAAMkC,EAAG,CAAC,EAAMJ,EAAGI,EAAG,CAAC,EACvB1B,EAAM2B,EAAG,CAAC,EAAML,EAAGK,EAAG,CAAC,EACvBrB,EAAMC,EAAQqC,GAAGlB,EAAG,CAAC,EACrBb,EAAMC,EAAQ8B,GAAGjB,EAAG,CAAC,EACfgB,GAAK1B,EAAG,CAAC,EAAG0B,GAAK,GAYtB,IAXKA,GAAK7D,GACTuC,EAAKsB,GACLA,GAAK,IAELtB,EAAKvC,EACL6D,IAAM7D,GAEPS,EAAMmC,EAAG,CAAC,EAAML,EAAGK,EAAG,CAAC,EACvB3B,EAAM4B,EAAG,CAAC,EAAMN,EAAGM,EAAG,CAAC,EACvBtB,EAAMC,EAAQqC,GAAGjB,EAAG,CAAC,EACrBd,EAAMC,EAAQ8B,GAAGhB,EAAG,CAAC,EACfe,GAAKzB,EAAG,CAAC,EAAGyB,GAAK,GAYtB,IAXKA,GAAK5D,GACTsC,EAAKsB,GACLA,GAAK,IAELtB,EAAKtC,EACL4D,IAAM5D,GAEPQ,EAAMoC,EAAG,CAAC,EAAMN,EAAGM,EAAG,CAAC,EACvB5B,EAAM6B,EAAG,CAAC,EAAMP,EAAGO,EAAG,CAAC,EACvBvB,EAAMC,EAAQqC,GAAGhB,EAAG,CAAC,EACrBf,EAAMC,EAAQ8B,GAAGf,EAAG,CAAC,EACfc,GAAKxB,EAAG,CAAC,EAAGwB,GAAK,GAYtB,IAXKA,GAAK3D,GACTqC,EAAKsB,GACLA,GAAK,IAELtB,EAAKrC,EACL2D,IAAM3D,GAEPO,EAAMqC,EAAG,CAAC,EAAMP,EAAGO,EAAG,CAAC,EACvB7B,EAAM8B,EAAG,CAAC,EAAMR,EAAGQ,EAAG,CAAC,EACvBxB,EAAMC,EAAQqC,GAAGf,EAAG,CAAC,EACrBhB,EAAMC,EAAQ8B,GAAGd,EAAG,CAAC,EACfa,GAAKvB,EAAG,CAAC,EAAGuB,GAAK,GAiBtB,IAhBKA,GAAK1D,GACToC,EAAKsB,GACLA,GAAK,IAELtB,EAAKpC,EACL0D,IAAM1D,GAGPgD,GAAK3B,EAAQqC,GAAGd,EAAG,CAAC,EACpBK,GAAKrB,EAAQ8B,GAAGb,EAAG,CAAC,EAGpBvC,EAAMsC,EAAG,CAAC,EAAMR,EAAGQ,EAAG,CAAC,EACvB9B,EAAM+B,EAAG,CAAC,EAAMT,EAAGS,EAAG,CAAC,EAGjBY,GAAK,EAAGA,GAAKd,EAAIc,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKd,EAAIc,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKd,EAAIc,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKd,EAAIc,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKd,EAAIc,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKd,EAAIc,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKd,EAAIc,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKd,EAAIc,KACtBiB,GAAIrE,EAAK,KAAMC,EAASI,EAAKF,EAAM+C,EAAG,EAAGoB,GAAG,CAAEpB,GAAIC,EAAG,EAAG,CAAEtD,EAAGC,CAAE,CAAE,EAC5DuE,KAAM,QACV/D,EAAKF,EAAM+C,GAAIpD,EAAKsE,EAAE,CAAE,EAEzBnB,IAAM3C,EACN4C,IAAMpC,EACNuD,IAAK,EAENpB,IAAM1C,EACN2C,IAAMnC,CACP,CACAkC,IAAMzC,EACN0C,IAAMlC,CACP,CACAiC,IAAMxC,EACNyC,IAAMjC,CACP,CACAgC,IAAMvC,EACNwC,IAAMhC,CACP,CACA+B,IAAMtC,EACNuC,IAAM/B,CACP,CACA8B,IAAMrC,EACNsC,IAAM9B,CACP,CACA6B,IAAMpC,EACNqC,IAAM7B,CACP,CAST,CAKA7B,GAAO,QAAUG,KCjXjB,IAAA2E,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwBA,IAAIC,GAAY,KACZC,GAAY,KA+FhB,SAASC,GAAgBC,EAAGC,EAAGC,EAAKC,EAAMC,EAAU,CACnD,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GA+BJ,IA1BAF,GAAIjF,GAAWG,EAAE,MAAOA,EAAE,QAASC,EAAE,OAAQ,EAC7C2C,EAAKkC,GAAE,GACPxB,GAAKwB,GAAE,GACPvB,GAAKuB,GAAE,GAGPzE,EAAQP,GAAWE,EAAE,MAAOC,EAAE,KAAM,EAGpCuD,GAAKxD,EAAE,OACPyD,GAAKxD,EAAE,OAGPK,EAAON,EAAE,KACTO,EAAON,EAAE,KAGTS,EAAM4C,GAAG,CAAC,EACVnC,EAAMoC,GAAG,CAAC,EAGV/C,EAAMR,EAAE,UAAU,CAAC,EACnBS,EAAMR,EAAE,UAAU,CAAC,EAGnB+E,GAAI,EACEH,GAAKjC,EAAG,CAAC,EAAGiC,GAAK,GAUtB,IATKA,GAAKxE,GACTgD,GAAKwB,GACLA,GAAK,IAELxB,GAAKhD,EACLwE,IAAMxE,GAEP8B,EAAMqB,GAAOqB,GAAGvB,GAAG,CAAC,EACpBX,EAAMc,GAAOoB,GAAGtB,GAAG,CAAC,EACdqB,GAAKhC,EAAG,CAAC,EAAGgC,GAAK,GAYtB,IAXKA,GAAKvE,GACT+C,EAAKwB,GACLA,GAAK,IAELxB,EAAK/C,EACLuE,IAAMvE,GAEPa,EAAMoC,GAAG,CAAC,EAAMF,EAAGE,GAAG,CAAC,EACvB3B,EAAM4B,GAAG,CAAC,EAAMH,EAAGG,GAAG,CAAC,EACvBrB,EAAMC,EAAQyC,GAAGtB,GAAG,CAAC,EACrBZ,EAAMC,EAAQiC,GAAGrB,GAAG,CAAC,EACfoB,GAAK/B,EAAG,CAAC,EAAG+B,GAAK,GAYtB,IAXKA,GAAKtE,GACT8C,EAAKwB,GACLA,GAAK,IAELxB,EAAK9C,EACLsE,IAAMtE,GAEPY,EAAMqC,GAAG,CAAC,EAAMH,EAAGG,GAAG,CAAC,EACvB5B,EAAM6B,GAAG,CAAC,EAAMJ,EAAGI,GAAG,CAAC,EACvBtB,EAAMC,EAAQyC,GAAGrB,GAAG,CAAC,EACrBb,EAAMC,EAAQiC,GAAGpB,GAAG,CAAC,EACfmB,GAAK9B,EAAG,CAAC,EAAG8B,GAAK,GAYtB,IAXKA,GAAKrE,GACT6C,EAAKwB,GACLA,GAAK,IAELxB,EAAK7C,EACLqE,IAAMrE,GAEPW,EAAMsC,GAAG,CAAC,EAAMJ,EAAGI,GAAG,CAAC,EACvB7B,EAAM8B,GAAG,CAAC,EAAML,EAAGK,GAAG,CAAC,EACvBvB,EAAMC,EAAQyC,GAAGpB,GAAG,CAAC,EACrBd,EAAMC,EAAQiC,GAAGnB,GAAG,CAAC,EACfkB,GAAK7B,EAAG,CAAC,EAAG6B,GAAK,GAYtB,IAXKA,GAAKpE,GACT4C,EAAKwB,GACLA,GAAK,IAELxB,EAAK5C,EACLoE,IAAMpE,GAEPU,EAAMuC,GAAG,CAAC,EAAML,EAAGK,GAAG,CAAC,EACvB9B,EAAM+B,GAAG,CAAC,EAAMN,EAAGM,GAAG,CAAC,EACvBxB,EAAMC,EAAQyC,GAAGnB,GAAG,CAAC,EACrBf,EAAMC,EAAQiC,GAAGlB,GAAG,CAAC,EACfiB,GAAK5B,EAAG,CAAC,EAAG4B,GAAK,GAYtB,IAXKA,GAAKnE,GACT2C,EAAKwB,GACLA,GAAK,IAELxB,EAAK3C,EACLmE,IAAMnE,GAEPS,EAAMwC,GAAG,CAAC,EAAMN,EAAGM,GAAG,CAAC,EACvB/B,EAAMgC,GAAG,CAAC,EAAMP,EAAGO,GAAG,CAAC,EACvBzB,EAAMC,EAAQyC,GAAGlB,GAAG,CAAC,EACrBhB,EAAMC,EAAQiC,GAAGjB,GAAG,CAAC,EACfgB,GAAK3B,EAAG,CAAC,EAAG2B,GAAK,GAYtB,IAXKA,GAAKlE,GACT0C,EAAKwB,GACLA,GAAK,IAELxB,EAAK1C,EACLkE,IAAMlE,GAEPQ,EAAMyC,GAAG,CAAC,EAAMP,EAAGO,GAAG,CAAC,EACvBhC,EAAMiC,GAAG,CAAC,EAAMR,EAAGQ,GAAG,CAAC,EACvB1B,EAAMC,EAAQyC,GAAGjB,GAAG,CAAC,EACrBjB,EAAMC,EAAQiC,GAAGhB,GAAG,CAAC,EACfe,GAAK1B,EAAG,CAAC,EAAG0B,GAAK,GAYtB,IAXKA,GAAKjE,GACTyC,EAAKwB,GACLA,GAAK,IAELxB,EAAKzC,EACLiE,IAAMjE,GAEPO,EAAM0C,GAAG,CAAC,EAAMR,EAAGQ,GAAG,CAAC,EACvBjC,EAAMkC,GAAG,CAAC,EAAMT,EAAGS,GAAG,CAAC,EACvB3B,EAAMC,EAAQyC,GAAGhB,GAAG,CAAC,EACrBlB,EAAMC,EAAQiC,GAAGf,GAAG,CAAC,EACfc,GAAKzB,EAAG,CAAC,EAAGyB,GAAK,GAiBtB,IAhBKA,GAAKhE,GACTwC,EAAKwB,GACLA,GAAK,IAELxB,EAAKxC,EACLgE,IAAMhE,GAGPqD,GAAK9B,EAAQyC,GAAGf,GAAG,CAAC,EACpBK,GAAKvB,EAAQiC,GAAGd,GAAG,CAAC,EAGpB5C,EAAM2C,GAAG,CAAC,EAAMT,EAAGS,GAAG,CAAC,EACvBlC,EAAMmC,GAAG,CAAC,EAAMV,EAAGU,GAAG,CAAC,EAGjBa,GAAK,EAAGA,GAAKf,GAAIe,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKf,EAAIe,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKf,EAAIe,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKf,EAAIe,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKf,EAAIe,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKf,EAAIe,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKf,EAAIe,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKf,EAAIe,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKf,EAAIe,KACtBmB,GAAI5E,EAAK,KAAMC,EAASI,EAAKF,EAAMoD,EAAG,EAAGsB,GAAG,CAAEtB,GAAIC,EAAG,EAAG,CAAE3D,EAAGC,CAAE,CAAE,EAC5D8E,KAAM,QACVtE,EAAKF,EAAMoD,GAAIzD,EAAK6E,EAAE,CAAE,EAEzBrB,IAAMhD,EACNiD,IAAMxC,EACN6D,IAAK,EAENtB,IAAM/C,EACNgD,IAAMvC,CACP,CACAsC,IAAM9C,EACN+C,IAAMtC,CACP,CACAqC,IAAM7C,EACN8C,IAAMrC,CACP,CACAoC,IAAM5C,EACN6C,IAAMpC,CACP,CACAmC,IAAM3C,EACN4C,IAAMnC,CACP,CACAkC,IAAM1C,EACN2C,IAAMlC,CACP,CACAiC,IAAMzC,EACN0C,IAAMjC,CACP,CACAgC,IAAMxC,EACNyC,IAAMhC,CACP,CAUV,CAKA/B,GAAO,QAAUG,KCzYjB,IAAAkF,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwBA,IAAIC,GAAY,KACZC,GAAY,KA+FhB,SAASC,GAAiBC,EAAGC,EAAGC,EAAKC,EAAMC,EAAU,CACpD,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GA+BJ,IA1BAF,GAAIxF,GAAWG,EAAE,MAAOA,EAAE,QAASC,EAAE,OAAQ,EAC7C+C,EAAKqC,GAAE,GACP1B,GAAK0B,GAAE,GACPzB,GAAKyB,GAAE,GAGPhF,EAAQP,GAAWE,EAAE,MAAOC,EAAE,KAAM,EAGpC4D,GAAK7D,EAAE,OACP8D,GAAK7D,EAAE,OAGPK,EAAON,EAAE,KACTO,EAAON,EAAE,KAGTS,EAAMiD,GAAG,CAAC,EACVvC,EAAMwC,GAAG,CAAC,EAGVpD,EAAMR,E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", - "names": ["require_main", "__commonJSMin", "exports", "module", "rowmajor", "shape", "ndims", "out", "s", "i", "columnmajor", "shape2strides", "order", "require_assign", "__commonJSMin", "exports", "module", "rowmajor", "shape", "out", "ndims", "s", "i", "columnmajor", "shape2strides", "order", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "assign", "require_main", "__commonJSMin", "exports", "module", "strides2offset", "shape", "strides", "offset", "ndims", "i", "require_lib", "__commonJSMin", "exports", "module", "strides2offset", "require_main", "__commonJSMin", "exports", "module", "abs", "strides2order", "strides", "column", "ndims", "row", "s1", "s2", "i", "require_lib", "__commonJSMin", "exports", "module", "strides2order", "require_main", "__commonJSMin", "exports", "module", "numel", "shape", "ndims", "n", "require_lib", "__commonJSMin", "exports", "module", "main", "require_orders", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "ORDERS", "orders", "require_enum", "__commonJSMin", "exports", "module", "enumerated", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "enumeration", "require_main", "__commonJSMin", "exports", "module", "orders", "ORDERS", "len", "isOrder", "v", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_dtypes", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "DTYPES", "dtypes", "out", "require_enum", "__commonJSMin", "exports", "module", "enumeration", "require_assign", "__commonJSMin", "exports", "module", "setReadOnly", "objectKeys", "assign", "target", "source", "keys", "k", "i", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "enumeration", "assign", "require_main", "__commonJSMin", "exports", "module", "contains", "dtypes", "isDataType", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "minmaxViewBufferIndex", "shape", "strides", "offset", "ndims", "min", "max", "s", "i", "require_assign", "__commonJSMin", "exports", "module", "minmaxViewBufferIndex", "shape", "strides", "offset", "out", "ndims", "min", "max", "i", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "assign", "require_main", "__commonJSMin", "exports", "module", "minmax", "isBufferLengthCompatible", "len", "shape", "strides", "offset", "buf", "require_lib", "__commonJSMin", "exports", "module", "main", "require_bytes_per_element", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "BYTES_PER_ELEMENT", "bytesPerElement", "dtype", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "iterationOrder", "strides", "cnt", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_is_column_major_contiguous", "__commonJSMin", "exports", "module", "isColumnMajorContiguous", "order", "contiguous", "require_is_row_major_contiguous", "__commonJSMin", "exports", "module", "isRowMajorContiguous", "order", "contiguous", "require_is_contiguous", "__commonJSMin", "exports", "module", "minmaxViewBufferIndex", "isContiguous", "len", "shape", "strides", "offset", "iterationOrder", "buf", "require_copy_flags", "__commonJSMin", "exports", "module", "copyFlags", "flags", "require_iget", "__commonJSMin", "exports", "module", "iget", "idx", "strides", "shape", "ndims", "ind", "s", "i", "require_iset", "__commonJSMin", "exports", "module", "iset", "idx", "v", "strides", "shape", "ndims", "ind", "s", "i", "require_set", "__commonJSMin", "exports", "module", "set", "idx", "i", "require_get", "__commonJSMin", "exports", "module", "get", "idx", "i", "require_tojson", "__commonJSMin", "exports", "module", "real", "imag", "toJSON", "out", "len", "v", "require_tostring", "__commonJSMin", "exports", "module", "replace", "real", "imag", "CTORS", "toString", "buffer", "ndims", "ctor", "str", "dt", "v", "i", "require_modes", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "MODES", "modes", "require_enum", "__commonJSMin", "exports", "module", "enumerated", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "modes", "enumeration", "require_meta2dataview", "__commonJSMin", "exports", "module", "IS_LITTLE_ENDIAN", "ArrayBuffer", "DataView", "BigInt", "dtypes", "orders", "modes", "DTYPES", "ORDERS", "MODES", "meta2dataview", "nbytes", "flgs", "len", "dt", "sh", "st", "sm", "v", "m", "o", "s", "N", "M", "i", "require_meta2dataview_polyfill", "__commonJSMin", "exports", "module", "IS_LITTLE_ENDIAN", "ArrayBuffer", "DataView", "Uint8Array", "dtypes", "orders", "modes", "float64ToInt64Bytes", "DTYPES", "ORDERS", "MODES", "meta2dataview", "nbytes", "bytes", "flgs", "len", "dt", "sh", "st", "sm", "v", "m", "o", "s", "N", "M", "i", "require_main", "__commonJSMin", "exports", "module", "hasBigIntSupport", "setReadOnly", "setReadOnlyAccessor", "bytesPerElement", "iterationOrder", "strides2order", "Boolean", "isColumnMajorContiguous", "isRowMajorContiguous", "isContiguous", "copyFlags", "igetValue", "isetValue", "setValue", "getValue", "toJSON", "toString", "meta2dataview", "meta2dataviewPolyfill", "ndarray", "dtype", "buffer", "shape", "strides", "offset", "order", "contiguous", "nbytes", "ord", "len", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "defaults", "require_get", "__commonJSMin", "exports", "module", "defaults", "DEFAULTS", "HASH", "get", "name", "v", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "get", "require_main", "__commonJSMin", "exports", "module", "clampIndex", "idx", "max", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "wrapIndex", "idx", "max", "mp1", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "normalizeIndex", "idx", "max", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "clampIndex", "wrapIndex", "normalizeIndex", "format", "ind", "idx", "max", "mode", "index", "require_lib", "__commonJSMin", "exports", "module", "main", "require_iget", "__commonJSMin", "exports", "module", "isInteger", "getIndex", "parent", "format", "base", "iget", "idx", "require_iset", "__commonJSMin", "exports", "module", "isInteger", "getIndex", "parent", "format", "base", "iset", "idx", "v", "require_get", "__commonJSMin", "exports", "module", "isInteger", "getIndex", "format", "get", "idx", "ind", "M", "require_set", "__commonJSMin", "exports", "module", "isInteger", "getIndex", "format", "set", "idx", "ind", "M", "require_copy_array", "__commonJSMin", "exports", "module", "copy", "arr", "len", "out", "require_main", "__commonJSMin", "exports", "module", "contains", "modes", "isIndexMode", "require_lib", "__commonJSMin", "exports", "module", "main", "require_validate", "__commonJSMin", "exports", "module", "isObject", "hasOwnProp", "isArray", "isIndexMode", "isBoolean", "format", "validate", "opts", "options", "i", "require_main", "__commonJSMin", "exports", "module", "setReadOnly", "isCollection", "isNonNegativeIntegerArray", "isNonNegativeInteger", "isIntegerArray", "isFunction", "isOrder", "isDataType", "isBufferLengthCompatible", "numel", "parent", "defaults", "inherit", "format", "iget", "iset", "get", "set", "copy", "validate", "MAX_DIMS", "INDEX_MODE", "READONLY", "ndarray", "dtype", "buffer", "shape", "strides", "offset", "order", "options", "ndims", "opts", "err", "sh", "st", "require_lib", "__commonJSMin", "exports", "module", "main", "require_modes", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "MODES", "modes", "require_enum", "__commonJSMin", "exports", "module", "enumerated", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "modes", "enumeration", "require_main", "__commonJSMin", "exports", "module", "modes", "MODES", "len", "isCastingMode", "v", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "objectInverse", "enumeration", "hash", "enum2str", "dtype", "v", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "enumeration", "ENUM", "str2enum", "dtype", "v", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "enum2str", "str2enum", "resolve", "dtype", "t", "require_lib", "__commonJSMin", "exports", "module", "main", "require_safe_casts", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "objectKeys", "hasOwnProp", "resolve", "SAFE_CASTS", "TABLE", "generateFullTable", "dtypes", "ntypes", "out", "tmp", "dt1", "dt2", "j", "i", "generateTable", "safeCasts", "dtype", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "safeCasts", "TABLE", "isSafeCast", "from", "to", "require_lib", "__commonJSMin", "exports", "module", "main", "require_data", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "objectKeys", "hasOwnProp", "resolve", "CASTS", "TABLE", "generateFullTable", "dtypes", "ntypes", "out", "tmp", "dt1", "dt2", "j", "i", "generateTable", "mostlySafeCasts", "dtype", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "casts", "TABLE", "isMostlySafeCast", "from", "to", "require_lib", "__commonJSMin", "exports", "module", "main", "require_same_kind_casts", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "objectKeys", "hasOwnProp", "resolve", "SAME_KIND_CASTS", "TABLE", "generateFullTable", "dtypes", "ntypes", "out", "tmp", "dt1", "dt2", "j", "i", "generateTable", "sameKindCasts", "dtype", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "sameKindCasts", "TABLE", "isSameKindCast", "from", "to", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isSafeCast", "isMostlySafeCast", "isSameKindCast", "isAllowedCast", "from", "to", "casting", "require_lib", "__commonJSMin", "exports", "module", "main", "require_ctors", "__commonJSMin", "exports", "module", "Buffer", "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_zeros", "__commonJSMin", "exports", "module", "zeros", "v", "i", "require_main", "__commonJSMin", "exports", "module", "bufferCtors", "allocUnsafe", "zeros", "generic", "size", "buf", "i", "binary", "typedarray", "dtype", "ctor", "buffer", "require_lib", "__commonJSMin", "exports", "module", "main", "require_ctor2dtype", "__commonJSMin", "exports", "module", "dtypes", "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", "isDataType", "format", "dtype", "x", "dt", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isNonNegativeInteger", "isCollection", "format", "shape", "x", "out", "sh", "d", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isInteger", "isCollection", "isOrder", "shape2strides", "format", "strides", "x", "out", "ord", "sh", "st", "d", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isNonNegativeInteger", "isCollection", "strides2offset", "format", "offset", "x", "st", "sh", "n", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isNonNegativeInteger", "isCollection", "format", "ndims", "x", "sh", "n", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isOrder", "strides", "ndims", "strides2order", "format", "ROW_MAJOR", "COLUMN_MAJOR", "order", "x", "st", "o", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isCollection", "format", "data", "x", "out", "require_lib", "__commonJSMin", "exports", "module", "main", "require_is_array_like_object", "__commonJSMin", "exports", "module", "PINF", "isInteger", "isArrayLikeObject", "value", "require_defaults", "__commonJSMin", "exports", "module", "settings", "defaults", "require_cast_buffer", "__commonJSMin", "exports", "module", "bufferCtors", "allocUnsafe", "castBuffer", "buffer", "len", "dtype", "ctor", "out", "i", "require_copy_view", "__commonJSMin", "exports", "module", "arraylike2object", "castReturn", "complexCtors", "bufferCtors", "allocUnsafe", "ndarray", "getDType", "getShape", "getStrides", "getOffset", "getOrder", "getData", "generic", "arr", "len", "out", "binary", "typed", "dtype", "ctor", "set", "fcn", "o", "i", "wrapper", "copyView", "x", "require_expand_shape", "__commonJSMin", "exports", "module", "expandShape", "ndims", "shape", "ndmin", "out", "i", "require_expand_strides", "__commonJSMin", "exports", "module", "abs", "expandStrides", "ndims", "shape", "strides", "order", "out", "N", "s", "i", "j", "require_main", "__commonJSMin", "exports", "module", "hasOwnProp", "isObject", "isBoolean", "isArray", "isNonNegativeInteger", "isndarrayLike", "shape2strides", "strides2offset", "strides2order", "numel", "ndarray", "isDataType", "isOrder", "isCastingMode", "isAllowedCast", "createBuffer", "getBufferDType", "getDType", "getShape", "getStrides", "getOffset", "getOrder", "getData", "arrayShape", "flatten", "format", "isArrayLikeObject", "getDefaults", "castBuffer", "copyView", "expandShape", "expandStrides", "defaults", "array", "options", "strides", "buffer", "offset", "order", "dtype", "btype", "shape", "ndims", "nopts", "opts", "osh", "len", "ord", "FLG", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "numel", "isBufferLengthCompatibleShape", "len", "shape", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "abs", "isColumnMajor", "strides", "ndims", "s1", "s2", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "numel", "minmax", "isSingleSegmentCompatible", "shape", "strides", "offset", "len", "buf", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isSingleSegmentCompatible", "iterationOrder", "isColumnMajor", "isColumnMajorContiguous", "shape", "strides", "offset", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "contains", "dtypes", "isComplexFloatingPointDataType", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isSingleSegmentCompatible", "iterationOrder", "isContiguous", "shape", "strides", "offset", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "contains", "dtypes", "isFloatingPointDataType", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "contains", "dtypes", "isIntegerDataType", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "contains", "dtypes", "isNumericDataType", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isReadOnly", "arr", "flags", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "contains", "dtypes", "isRealDataType", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "contains", "dtypes", "isRealFloatingPointDataType", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "abs", "isRowMajor", "strides", "ndims", "s1", "s2", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isSingleSegmentCompatible", "iterationOrder", "isRowMajor", "isRowMajorContiguous", "shape", "strides", "offset", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "contains", "dtypes", "isSignedIntegerDataType", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "contains", "dtypes", "isUnsignedIntegerDataType", "require_lib", "__commonJSMin", "exports", "module", "main", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "ns", "require_main", "__commonJSMin", "exports", "module", "dtype", "x", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "copyIndexed", "shape", "x", "copy", "sh", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "shape2strides", "copyIndexed", "ROW_MAJOR", "strides", "x", "copy", "ord", "sh", "st", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "strides2offset", "offset", "x", "st", "sh", "o", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "strides2order", "ROW_MAJOR", "COLUMN_MAJOR", "order", "x", "st", "o", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "data", "x", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isAccessorArray", "accessorGetter", "accessorSetter", "getter", "setter", "numel", "getDType", "getShape", "getStrides", "getOffset", "getOrder", "getData", "ndarraylike2object", "x", "xbuf", "bool", "sh", "dt", "require_lib", "__commonJSMin", "exports", "module", "main", "require_sort2ins", "__commonJSMin", "exports", "module", "sort2ins", "x", "y", "avx", "aux", "ix", "iy", "jx", "jy", "vx", "vy", "ux", "i", "require_main", "__commonJSMin", "exports", "module", "zeroTo", "copy", "take", "sort2ins", "loopOrder", "sh", "sx", "sy", "idx", "require_lib", "__commonJSMin", "exports", "module", "main", "require_defaults", "__commonJSMin", "exports", "module", "defaults", "require_main", "__commonJSMin", "exports", "module", "bytesPerElement", "defaults", "unaryBlockSize", "dtypeX", "dtypeY", "nbx", "nby", "require_lib", "__commonJSMin", "exports", "module", "main", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedassign2d", "x", "y", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dy0", "dy1", "ox1", "oy1", "sh", "s0", "s1", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "j0", "j1", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedassign3d", "x", "y", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dy0", "dy1", "dy2", "ox1", "ox2", "oy1", "oy2", "sh", "s0", "s1", "s2", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "j0", "j1", "j2", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedassign4d", "x", "y", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dy0", "dy1", "dy2", "dy3", "ox1", "ox2", "ox3", "oy1", "oy2", "oy3", "sh", "s0", "s1", "s2", "s3", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "j0", "j1", "j2", "j3", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedassign5d", "x", "y", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dy0", "dy1", "dy2", "dy3", "dy4", "ox1", "ox2", "ox3", "ox4", "oy1", "oy2", "oy3", "oy4", "sh", "s0", "s1", "s2", "s3", "s4", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "j0", "j1", "j2", "j3", "j4", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedassign6d", "x", "y", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "ox1", "ox2", "ox3", "ox4", "ox5", "oy1", "oy2", "oy3", "oy4", "oy5", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "j0", "j1", "j2", "j3", "j4", "j5", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedassign7d", "x", "y", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedassign8d", "x", "y", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "oy7", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedassign9d", "x", "y", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "ox8", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "oy7", "oy8", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "j8", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedassign10d", "x", "y", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dx9", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "dy9", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "ox8", "ox9", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "oy7", "oy8", "oy9", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "s9", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "i9", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "j8", "j9", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedassign2d", "x", "y", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dy0", "dy1", "ox1", "oy1", "sh", "s0", "s1", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "j0", "j1", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedassign3d", "x", "y", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dy0", "dy1", "dy2", "ox1", "ox2", "oy1", "oy2", "sh", "s0", "s1", "s2", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "j0", "j1", "j2", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedassign4d", "x", "y", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dy0", "dy1", "dy2", "dy3", "ox1", "ox2", "ox3", "oy1", "oy2", "oy3", "sh", "s0", "s1", "s2", "s3", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "j0", "j1", "j2", "j3", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedassign5d", "x", "y", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dy0", "dy1", "dy2", "dy3", "dy4", "ox1", "ox2", "ox3", "ox4", "oy1", "oy2", "oy3", "oy4", "sh", "s0", "s1", "s2", "s3", "s4", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "j0", "j1", "j2", "j3", "j4", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedassign6d", "x", "y", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "ox1", "ox2", "ox3", "ox4", "ox5", "oy1", "oy2", "oy3", "oy4", "oy5", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "j0", "j1", "j2", "j3", "j4", "j5", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedassign7d", "x", "y", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedassign8d", "x", "y", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "oy7", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedassign9d", "x", "y", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "ox8", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "oy7", "oy8", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "j8", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedassign10d", "x", "y", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dx9", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "dy9", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "ox8", "ox9", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "oy7", "oy8", "oy9", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "s9", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "i9", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "j8", "j9", "o", "require_d_accessors", "__commonJSMin", "exports", "module", "assign0d", "x", "y", "require_d_accessors", "__commonJSMin", "exports", "module", "assign1d", "x", "y", "xbuf", "ybuf", "get", "set", "dx0", "dy0", "S0", "ix", "iy", "i0", "require_d_accessors", "__commonJSMin", "exports", "module", "assign2d", "x", "y", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dy0", "dy1", "sh", "S0", "S1", "sx", "sy", "ix", "iy", "i0", "i1", "require_d_accessors", "__commonJSMin", "exports", "module", "assign3d", "x", "y", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dy0", "dy1", "dy2", "sh", "S0", "S1", "S2", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "require_d_accessors", "__commonJSMin", "exports", "module", "assign4d", "x", "y", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dy0", "dy1", "dy2", "dy3", "sh", "S0", "S1", "S2", "S3", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "require_d_accessors", "__commonJSMin", "exports", "module", "assign5d", "x", "y", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dy0", "dy1", "dy2", "dy3", "dy4", "sh", "S0", "S1", "S2", "S3", "S4", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "require_d_accessors", "__commonJSMin", "exports", "module", "assign6d", "x", "y", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "require_d_accessors", "__commonJSMin", "exports", "module", "assign7d", "x", "y", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "require_d_accessors", "__commonJSMin", "exports", "module", "assign8d", "x", "y", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "require_d_accessors", "__commonJSMin", "exports", "module", "assign9d", "x", "y", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "require_d_accessors", "__commonJSMin", "exports", "module", "assign10d", "x", "y", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dx9", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "dy9", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "S9", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "i9", "require_main", "__commonJSMin", "exports", "module", "format", "vind2bind", "shape", "strides", "offset", "order", "idx", "mode", "ndims", "len", "ind", "s", "i", "require_lib", "__commonJSMin", "exports", "module", "vind2bind", "require_nd_accessors", "__commonJSMin", "exports", "module", "numel", "vind2bind", "MODE", "assignnd", "x", "y", "xbuf", "ybuf", "ordx", "ordy", "len", "get", "set", "sh", "sx", "sy", "ox", "oy", "ix", "iy", "i", "require_d", "__commonJSMin", "exports", "module", "assign0d", "x", "y", "require_d", "__commonJSMin", "exports", "module", "assign1d", "x", "y", "xbuf", "ybuf", "dx0", "dy0", "S0", "ix", "iy", "i0", "require_d", "__commonJSMin", "exports", "module", "assign2d", "x", "y", "xbuf", "ybuf", "dx0", "dx1", "dy0", "dy1", "sh", "S0", "S1", "sx", "sy", "ix", "iy", "i0", "i1", "require_d", "__commonJSMin", "exports", "module", "assign3d", "x", "y", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dy0", "dy1", "dy2", "sh", "S0", "S1", "S2", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "require_d", "__commonJSMin", "exports", "module", "assign4d", "x", "y", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dy0", "dy1", "dy2", "dy3", "sh", "S0", "S1", "S2", "S3", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "require_d", "__commonJSMin", "exports", "module", "assign5d", "x", "y", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dy0", "dy1", "dy2", "dy3", "dy4", "sh", "S0", "S1", "S2", "S3", "S4", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "require_d", "__commonJSMin", "exports", "module", "assign6d", "x", "y", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "require_d", "__commonJSMin", "exports", "module", "assign7d", "x", "y", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "require_d", "__commonJSMin", "exports", "module", "assign8d", "x", "y", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "require_d", "__commonJSMin", "exports", "module", "assign9d", "x", "y", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "require_d", "__commonJSMin", "exports", "module", "assign10d", "x", "y", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dx9", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "dy9", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "S9", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "i9", "require_nd", "__commonJSMin", "exports", "module", "numel", "vind2bind", "MODE", "assignnd", "x", "y", "xbuf", "ybuf", "ordx", "ordy", "len", "sh", "sx", "sy", "ox", "oy", "ix", "iy", "i", "require_main", "__commonJSMin", "exports", "module", "isComplexDataType", "isRealDataType", "iterationOrder", "castReturn", "complexCtors", "minmaxViewBufferIndex", "ndarray2object", "blockedaccessorassign2d", "blockedaccessorassign3d", "blockedaccessorassign4d", "blockedaccessorassign5d", "blockedaccessorassign6d", "blockedaccessorassign7d", "blockedaccessorassign8d", "blockedaccessorassign9d", "blockedaccessorassign10d", "blockedassign2d", "blockedassign3d", "blockedassign4d", "blockedassign5d", "blockedassign6d", "blockedassign7d", "blockedassign8d", "blockedassign9d", "blockedassign10d", "accessorassign0d", "accessorassign1d", "accessorassign2d", "accessorassign3d", "accessorassign4d", "accessorassign5d", "accessorassign6d", "accessorassign7d", "accessorassign8d", "accessorassign9d", "accessorassign10d", "accessorassignnd", "assign0d", "assign1d", "assign2d", "assign3d", "assign4d", "assign5d", "assign6d", "assign7d", "assign8d", "assign9d", "assign10d", "assignnd", "ASSIGN", "ACCESSOR_ASSIGN", "BLOCKED_ASSIGN", "BLOCKED_ACCESSOR_ASSIGN", "MAX_DIMS", "assign", "arrays", "ndims", "xmmv", "ymmv", "shx", "shy", "iox", "ioy", "len", "sx", "sy", "ox", "oy", "ns", "x", "y", "d", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_sort2ins", "__commonJSMin", "exports", "module", "sort2ins", "x", "y", "avx", "aux", "ix", "iy", "jx", "jy", "vx", "vy", "ux", "i", "require_main", "__commonJSMin", "exports", "module", "zeroTo", "copy", "take", "filled", "strides2order", "sort2ins", "N", "loopOrder", "sh", "sx", "sy", "sz", "idx", "tmp", "max", "len", "arr", "ox", "oy", "oz", "i", "j", "require_lib", "__commonJSMin", "exports", "module", "main", "require_defaults", "__commonJSMin", "exports", "module", "defaults", "require_main", "__commonJSMin", "exports", "module", "bytesPerElement", "defaults", "binaryBlockSize", "dtypeX", "dtypeY", "dtypeZ", "nbx", "nby", "nbz", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "format", "trunc", "abs", "bind2vind", "shape", "strides", "offset", "order", "idx", "mode", "ndims", "len", "ind", "k", "s", "i", "require_lib", "__commonJSMin", "exports", "module", "bind2vind", "require_main", "__commonJSMin", "exports", "module", "copy", "ndarray", "getShape", "getStrides", "getOffset", "getOrder", "getDType", "getData", "format", "broadcastArray", "arr", "shape", "strides", "dim", "sh", "st", "N", "M", "d", "i", "j", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isAccessorArray", "accessorSetter", "setter", "zeros", "buffer", "ndarray", "format", "broadcastScalar", "value", "dtype", "shape", "order", "buf", "set", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "broadcastShapes", "shapes", "ndims", "out", "dim", "sh", "n1", "n2", "d", "M", "N", "i", "j", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "str2enum", "dtype", "dtypeEnum", "arr", "dt", "require_lib", "__commonJSMin", "exports", "module", "main", "require_table", "__commonJSMin", "exports", "module", "table", "require_main", "__commonJSMin", "exports", "module", "resolve", "table", "TABLE", "dtypeChar", "dtype", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "objectInverse", "dtypeChar", "TABLE", "char2dtype", "ch", "require_lib", "__commonJSMin", "exports", "module", "char2dtype", "require_table", "__commonJSMin", "exports", "module", "table", "require_main", "__commonJSMin", "exports", "module", "resolve", "table", "TABLE", "dtypeDesc", "dtype", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "enum2str", "str2enum", "resolve", "dtype", "t", "require_lib", "__commonJSMin", "exports", "module", "main", "require_table", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "resolve", "TABLE", "dtype2c", "dtype", "require_lib", "__commonJSMin", "exports", "module", "dtype2c", "require_main", "__commonJSMin", "exports", "module", "isArrayLikeObject", "isNonNegativeInteger", "resolve", "format", "dtypes2signatures", "dtypes", "nin", "nout", "len", "out", "tmp", "dt", "N", "M", "i", "m", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "shape2strides", "strides2offset", "ndarray", "numel", "emptyArray", "allocUnsafe", "empty", "dtype", "shape", "order", "ndims", "buf", "len", "st", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "shape2strides", "strides2offset", "numel", "getDType", "getShape", "getOrder", "emptyArray", "allocUnsafe", "emptyLike", "x", "ndims", "len", "buf", "ord", "sh", "st", "dt", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isReadOnly", "getDType", "getShape", "getStrides", "getOffset", "getOrder", "getData", "format", "expandDimensions", "x", "axis", "strides", "shape", "ord", "sh", "st", "N", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_slice_start", "__commonJSMin", "exports", "module", "sliceStart", "slice", "strides", "offset", "data", "idx", "i", "require_slice_strides", "__commonJSMin", "exports", "module", "slice2strides", "slice", "strides", "rdims", "data", "out", "i", "j", "require_empty", "__commonJSMin", "exports", "module", "buffer", "zeros", "empty", "ctor", "dtype", "shape", "order", "readonly", "strides", "ndims", "require_main", "__commonJSMin", "exports", "module", "normalizeMultiSlice", "nonreducedDimensions", "sliceShape", "take", "zeros", "numel", "getDType", "getShape", "getStrides", "getOffset", "getOrder", "getData", "format", "sliceStart", "slice2strides", "empty", "slice", "x", "s", "strict", "writable", "strides", "offset", "dtype", "shape", "order", "sdims", "ndims", "ctor", "sh", "ns", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "ndims", "x", "n", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "args2multislice", "Slice", "slice", "filled", "ndims", "format", "reverseDimension", "x", "dim", "writable", "args", "N", "d", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "MultiSlice", "reverseDimension", "slice", "ndims", "fliplr", "x", "writable", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "MultiSlice", "reverseDimension", "slice", "ndims", "flipud", "x", "writable", "N", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isAccessorArray", "accessorSetter", "setter", "buffer", "ndarray", "format", "scalar2ndarray", "value", "dtype", "order", "buf", "set", "require_lib", "__commonJSMin", "exports", "module", "main", "require_assign", "__commonJSMin", "exports", "module", "format", "trunc", "ind2sub", "shape", "strides", "offset", "order", "idx", "mode", "out", "ndims", "len", "k", "s", "i", "require_main", "__commonJSMin", "exports", "module", "zeros", "getSubscripts", "ind2sub", "shape", "strides", "offset", "order", "idx", "mode", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "assign", "require_main", "__commonJSMin", "exports", "module", "maxViewBufferIndex", "shape", "strides", "offset", "ndims", "idx", "i", "require_lib", "__commonJSMin", "exports", "module", "maxViewBufferIndex", "require_main", "__commonJSMin", "exports", "module", "broadcast", "getShape", "maybeBroadcastArray", "arr", "shape", "sh", "N", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "setReadOnly", "setReadOnlyAccessor", "dtypes2signatures", "setProps", "meta", "dtypes", "obj", "types", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "minViewBufferIndex", "shape", "strides", "offset", "ndims", "idx", "i", "require_lib", "__commonJSMin", "exports", "module", "minViewBufferIndex", "require_assign", "__commonJSMin", "exports", "module", "ROW_MAJOR", "rowmajor", "ndims", "shape", "idx", "dim", "out", "i", "j", "columnmajor", "nextCartesianIndex", "order", "require_main", "__commonJSMin", "exports", "module", "zeros", "assign", "nextCartesianIndex", "shape", "order", "idx", "dim", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "assign", "require_main", "__commonJSMin", "exports", "module", "nonsingletonDimensions", "shape", "cnt", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_sort2ins", "__commonJSMin", "exports", "module", "sort2ins", "x", "y", "avx", "aux", "ix", "iy", "jx", "jy", "vx", "vy", "ux", "i", "require_main", "__commonJSMin", "exports", "module", "zeroTo", "copy", "take", "sort2ins", "loopOrder", "sh", "sx", "idx", "require_lib", "__commonJSMin", "exports", "module", "main", "require_defaults", "__commonJSMin", "exports", "module", "defaults", "require_main", "__commonJSMin", "exports", "module", "bytesPerElement", "defaults", "nullaryBlockSize", "dtypeX", "nbx", "require_lib", "__commonJSMin", "exports", "module", "main", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockednullary2d", "x", "fcn", "bsize", "xbuf", "set", "dx0", "dx1", "ox1", "sh", "s0", "s1", "sx", "ox", "ix", "i0", "i1", "j0", "j1", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockednullary3d", "x", "fcn", "bsize", "xbuf", "set", "dx0", "dx1", "dx2", "ox1", "ox2", "sh", "s0", "s1", "s2", "sx", "ox", "ix", "i0", "i1", "i2", "j0", "j1", "j2", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockednullary4d", "x", "fcn", "bsize", "xbuf", "set", "dx0", "dx1", "dx2", "dx3", "ox1", "ox2", "ox3", "sh", "s0", "s1", "s2", "s3", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "j0", "j1", "j2", "j3", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockednullary5d", "x", "fcn", "bsize", "xbuf", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "ox1", "ox2", "ox3", "ox4", "sh", "s0", "s1", "s2", "s3", "s4", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "i4", "j0", "j1", "j2", "j3", "j4", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockednullary6d", "x", "fcn", "bsize", "xbuf", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "ox1", "ox2", "ox3", "ox4", "ox5", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "j0", "j1", "j2", "j3", "j4", "j5", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockednullary7d", "x", "fcn", "bsize", "xbuf", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockednullary8d", "x", "fcn", "bsize", "xbuf", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockednullary9d", "x", "fcn", "bsize", "xbuf", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "ox8", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "j8", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockednullary10d", "x", "fcn", "bsize", "xbuf", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dx9", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "ox8", "ox9", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "s9", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "i9", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "j8", "j9", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockednullary2d", "x", "fcn", "bsize", "xbuf", "dx0", "dx1", "ox1", "sh", "s0", "s1", "sx", "ox", "ix", "i0", "i1", "j0", "j1", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockednullary3d", "x", "fcn", "bsize", "xbuf", "dx0", "dx1", "dx2", "ox1", "ox2", "sh", "s0", "s1", "s2", "sx", "ox", "ix", "i0", "i1", "i2", "j0", "j1", "j2", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockednullary4d", "x", "fcn", "bsize", "xbuf", "dx0", "dx1", "dx2", "dx3", "ox1", "ox2", "ox3", "sh", "s0", "s1", "s2", "s3", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "j0", "j1", "j2", "j3", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockednullary5d", "x", "fcn", "bsize", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "ox1", "ox2", "ox3", "ox4", "sh", "s0", "s1", "s2", "s3", "s4", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "i4", "j0", "j1", "j2", "j3", "j4", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockednullary6d", "x", "fcn", "bsize", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "ox1", "ox2", "ox3", "ox4", "ox5", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "j0", "j1", "j2", "j3", "j4", "j5", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockednullary7d", "x", "fcn", "bsize", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockednullary8d", "x", "fcn", "bsize", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockednullary9d", "x", "fcn", "bsize", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "ox8", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "j8", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockednullary10d", "x", "fcn", "bsize", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dx9", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "ox8", "ox9", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "s9", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "i9", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "j8", "j9", "o", "require_d_accessors", "__commonJSMin", "exports", "module", "nullary0d", "x", "fcn", "require_d_accessors", "__commonJSMin", "exports", "module", "nullary1d", "x", "fcn", "xbuf", "set", "dx0", "S0", "ix", "i0", "require_d_accessors", "__commonJSMin", "exports", "module", "nullary2d", "x", "fcn", "xbuf", "set", "dx0", "dx1", "sh", "S0", "S1", "sx", "ix", "i0", "i1", "require_d_accessors", "__commonJSMin", "exports", "module", "nullary3d", "x", "fcn", "xbuf", "set", "dx0", "dx1", "dx2", "sh", "S0", "S1", "S2", "sx", "ix", "i0", "i1", "i2", "require_d_accessors", "__commonJSMin", "exports", "module", "nullary4d", "x", "fcn", "xbuf", "set", "dx0", "dx1", "dx2", "dx3", "sh", "S0", "S1", "S2", "S3", "sx", "ix", "i0", "i1", "i2", "i3", "require_d_accessors", "__commonJSMin", "exports", "module", "nullary5d", "x", "fcn", "xbuf", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "sh", "S0", "S1", "S2", "S3", "S4", "sx", "ix", "i0", "i1", "i2", "i3", "i4", "require_d_accessors", "__commonJSMin", "exports", "module", "nullary6d", "x", "fcn", "xbuf", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "sx", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "require_d_accessors", "__commonJSMin", "exports", "module", "nullary7d", "x", "fcn", "xbuf", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "sx", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "require_d_accessors", "__commonJSMin", "exports", "module", "nullary8d", "x", "fcn", "xbuf", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "sx", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "require_d_accessors", "__commonJSMin", "exports", "module", "nullary9d", "x", "fcn", "xbuf", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "sx", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "require_d_accessors", "__commonJSMin", "exports", "module", "nullary10d", "x", "fcn", "xbuf", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dx9", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "S9", "sx", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "i9", "require_nd_accessors", "__commonJSMin", "exports", "module", "numel", "vind2bind", "MODE", "nullarynd", "x", "fcn", "xbuf", "ordx", "len", "set", "sh", "sx", "ox", "ix", "i", "require_d", "__commonJSMin", "exports", "module", "nullary0d", "x", "fcn", "require_d", "__commonJSMin", "exports", "module", "nullary1d", "x", "fcn", "xbuf", "dx0", "S0", "ix", "i0", "require_d", "__commonJSMin", "exports", "module", "nullary2d", "x", "fcn", "xbuf", "dx0", "dx1", "sh", "S0", "S1", "sx", "ix", "i0", "i1", "require_d", "__commonJSMin", "exports", "module", "nullary3d", "x", "fcn", "xbuf", "dx0", "dx1", "dx2", "sh", "S0", "S1", "S2", "sx", "ix", "i0", "i1", "i2", "require_d", "__commonJSMin", "exports", "module", "nullary4d", "x", "fcn", "xbuf", "dx0", "dx1", "dx2", "dx3", "sh", "S0", "S1", "S2", "S3", "sx", "ix", "i0", "i1", "i2", "i3", "require_d", "__commonJSMin", "exports", "module", "nullary5d", "x", "fcn", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "sh", "S0", "S1", "S2", "S3", "S4", "sx", "ix", "i0", "i1", "i2", "i3", "i4", "require_d", "__commonJSMin", "exports", "module", "nullary6d", "x", "fcn", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "sx", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "require_d", "__commonJSMin", "exports", "module", "nullary7d", "x", "fcn", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "sx", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "require_d", "__commonJSMin", "exports", "module", "nullary8d", "x", "fcn", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "sx", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "require_d", "__commonJSMin", "exports", "module", "nullary9d", "x", "fcn", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "sx", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "require_d", "__commonJSMin", "exports", "module", "nullary10d", "x", "fcn", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dx9", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "S9", "sx", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "i9", "require_nd", "__commonJSMin", "exports", "module", "numel", "vind2bind", "MODE", "nullarynd", "x", "fcn", "xbuf", "ordx", "len", "sh", "sx", "ox", "ix", "i", "require_main", "__commonJSMin", "exports", "module", "iterationOrder", "minmaxViewBufferIndex", "ndarray2object", "blockedaccessornullary2d", "blockedaccessornullary3d", "blockedaccessornullary4d", "blockedaccessornullary5d", "blockedaccessornullary6d", "blockedaccessornullary7d", "blockedaccessornullary8d", "blockedaccessornullary9d", "blockedaccessornullary10d", "blockednullary2d", "blockednullary3d", "blockednullary4d", "blockednullary5d", "blockednullary6d", "blockednullary7d", "blockednullary8d", "blockednullary9d", "blockednullary10d", "accessornullary0d", "accessornullary1d", "accessornullary2d", "accessornullary3d", "accessornullary4d", "accessornullary5d", "accessornullary6d", "accessornullary7d", "accessornullary8d", "accessornullary9d", "accessornullary10d", "accessornullarynd", "nullary0d", "nullary1d", "nullary2d", "nullary3d", "nullary4d", "nullary5d", "nullary6d", "nullary7d", "nullary8d", "nullary9d", "nullary10d", "nullarynd", "NULLARY", "ACCESSOR_NULLARY", "BLOCKED_NULLARY", "BLOCKED_ACCESSOR_NULLARY", "MAX_DIMS", "nullary", "arrays", "fcn", "ndims", "xmmv", "shx", "iox", "len", "sx", "ox", "ns", "x", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_policies", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "POLICIES", "policies", "require_enum", "__commonJSMin", "exports", "module", "enumeration", "require_assign", "__commonJSMin", "exports", "module", "setReadOnly", "objectKeys", "assign", "target", "source", "keys", "k", "i", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "enumeration", "assign", "require_main", "__commonJSMin", "exports", "module", "objectInverse", "enumeration", "hash", "enum2str", "policy", "v", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "enumeration", "ENUM", "str2enum", "policy", "v", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "enum2str", "str2enum", "resolve", "policy", "t", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "enum2str", "str2enum", "resolve", "policy", "t", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isReadOnly", "getDType", "getShape", "getStrides", "getOffset", "getOrder", "getData", "prependSingletonDimensions", "x", "n", "strides", "shape", "sh", "st", "N", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isReadOnly", "getDType", "getShape", "getStrides", "getOffset", "getOrder", "getData", "removeSingletonDimensions", "x", "strides", "shape", "sh", "st", "N", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "args2multislice", "Slice", "filled", "slice", "ndims", "reverse", "x", "writable", "args", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "IS_LITTLE_ENDIAN", "ArrayBuffer", "DataView", "BigInt", "bytesPerElement", "dtypes", "orders", "modes", "getDType", "getShape", "getStrides", "getOffset", "getOrder", "DTYPES", "ORDERS", "MODES", "serialize", "x", "nbytes", "flgs", "len", "dt", "sh", "st", "sm", "v", "m", "o", "s", "N", "M", "i", "require_polyfill", "__commonJSMin", "exports", "module", "IS_LITTLE_ENDIAN", "float64ToInt64Bytes", "ArrayBuffer", "Uint8Array", "DataView", "bytesPerElement", "dtypes", "orders", "modes", "getDType", "getShape", "getStrides", "getOffset", "getOrder", "DTYPES", "ORDERS", "MODES", "serialize", "x", "nbytes", "bytes", "flgs", "len", "dt", "sh", "st", "sm", "v", "m", "o", "s", "N", "M", "i", "require_lib", "__commonJSMin", "exports", "module", "hasBigIntSupport", "builtin", "polyfill", "main", "require_main", "__commonJSMin", "exports", "module", "singletonDimensions", "shape", "cnt", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isMostlySafeCast", "broadcast", "assign", "slice", "getDType", "getShape", "format", "sliceAssign", "x", "y", "s", "strict", "view", "xdt", "ydt", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "args2multislice", "ndims", "slice", "normalizeIndex", "filled", "format", "sliceDimension", "x", "dim", "s", "strict", "writable", "args", "N", "d", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "args2multislice", "Slice", "ndims", "slice", "normalizeIndex", "filled", "format", "sliceDimensionFrom", "x", "dim", "start", "strict", "writable", "args", "N", "d", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "args2multislice", "Slice", "ndims", "slice", "normalizeIndex", "filled", "format", "sliceDimensionTo", "x", "dim", "stop", "strict", "writable", "args", "N", "d", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isNumber", "args2multislice", "Slice", "slice", "sliceFrom", "x", "start", "strict", "writable", "args", "s", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isNumber", "args2multislice", "Slice", "slice", "sliceTo", "x", "stop", "strict", "writable", "args", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "format", "sub2ind", "strides", "offset", "nmodes", "shape", "ndims", "modes", "mode", "idx", "m", "s", "j", "i", "require_lib", "__commonJSMin", "exports", "module", "sub2ind", "require_recurse", "__commonJSMin", "exports", "module", "recurse", "obj", "shape", "strides", "offset", "order", "dim", "stride", "item", "out", "n", "i", "require_main", "__commonJSMin", "exports", "module", "arraylike2object", "recurse", "ndarray2array", "buffer", "shape", "strides", "offset", "order", "i", "require_lib", "__commonJSMin", "exports", "module", "ndarray2array", "require_main", "__commonJSMin", "exports", "module", "strides2offset", "getDType", "getShape", "getStrides", "getOrder", "getData", "transpose", "x", "tmp", "sh", "st", "N", "require_lib", "__commonJSMin", "exports", "module", "main", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary2d", "x", "y", "fcn", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dy0", "dy1", "ox1", "oy1", "sh", "s0", "s1", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "j0", "j1", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary3d", "x", "y", "fcn", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dy0", "dy1", "dy2", "ox1", "ox2", "oy1", "oy2", "sh", "s0", "s1", "s2", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "j0", "j1", "j2", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary4d", "x", "y", "fcn", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dy0", "dy1", "dy2", "dy3", "ox1", "ox2", "ox3", "oy1", "oy2", "oy3", "sh", "s0", "s1", "s2", "s3", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "j0", "j1", "j2", "j3", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary5d", "x", "y", "fcn", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dy0", "dy1", "dy2", "dy3", "dy4", "ox1", "ox2", "ox3", "ox4", "oy1", "oy2", "oy3", "oy4", "sh", "s0", "s1", "s2", "s3", "s4", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "j0", "j1", "j2", "j3", "j4", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary6d", "x", "y", "fcn", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "ox1", "ox2", "ox3", "ox4", "ox5", "oy1", "oy2", "oy3", "oy4", "oy5", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "j0", "j1", "j2", "j3", "j4", "j5", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary7d", "x", "y", "fcn", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary8d", "x", "y", "fcn", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "oy7", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary9d", "x", "y", "fcn", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "ox8", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "oy7", "oy8", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "j8", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary10d", "x", "y", "fcn", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dx9", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "dy9", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "ox8", "ox9", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "oy7", "oy8", "oy9", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "s9", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "i9", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "j8", "j9", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary2d", "x", "y", "fcn", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dy0", "dy1", "ox1", "oy1", "sh", "s0", "s1", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "j0", "j1", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary3d", "x", "y", "fcn", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dy0", "dy1", "dy2", "ox1", "ox2", "oy1", "oy2", "sh", "s0", "s1", "s2", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "j0", "j1", "j2", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary4d", "x", "y", "fcn", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dy0", "dy1", "dy2", "dy3", "ox1", "ox2", "ox3", "oy1", "oy2", "oy3", "sh", "s0", "s1", "s2", "s3", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "j0", "j1", "j2", "j3", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary5d", "x", "y", "fcn", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dy0", "dy1", "dy2", "dy3", "dy4", "ox1", "ox2", "ox3", "ox4", "oy1", "oy2", "oy3", "oy4", "sh", "s0", "s1", "s2", "s3", "s4", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "j0", "j1", "j2", "j3", "j4", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary6d", "x", "y", "fcn", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "ox1", "ox2", "ox3", "ox4", "ox5", "oy1", "oy2", "oy3", "oy4", "oy5", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "j0", "j1", "j2", "j3", "j4", "j5", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary7d", "x", "y", "fcn", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary8d", "x", "y", "fcn", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "oy7", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary9d", "x", "y", "fcn", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "ox8", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "oy7", "oy8", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "j8", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary10d", "x", "y", "fcn", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dx9", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "dy9", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "ox8", "ox9", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "oy7", "oy8", "oy9", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "s9", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "i9", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "j8", "j9", "o", "require_d_accessors", "__commonJSMin", "exports", "module", "unary0d", "x", "y", "fcn", "require_d_accessors", "__commonJSMin", "exports", "module", "unary1d", "x", "y", "fcn", "xbuf", "ybuf", "get", "set", "dx0", "dy0", "S0", "ix", "iy", "i0", "require_d_accessors", "__commonJSMin", "exports", "module", "unary2d", "x", "y", "fcn", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dy0", "dy1", "sh", "S0", "S1", "sx", "sy", "ix", "iy", "i0", "i1", "require_d_accessors", "__commonJSMin", "exports", "module", "unary3d", "x", "y", "fcn", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dy0", "dy1", "dy2", "sh", "S0", "S1", "S2", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "require_d_accessors", "__commonJSMin", "exports", "module", "unary4d", "x", "y", "fcn", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dy0", "dy1", "dy2", "dy3", "sh", "S0", "S1", "S2", "S3", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "require_d_accessors", "__commonJSMin", "exports", "module", "unary5d", "x", "y", "fcn", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dy0", "dy1", "dy2", "dy3", "dy4", "sh", "S0", "S1", "S2", "S3", "S4", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "require_d_accessors", "__commonJSMin", "exports", "module", "unary6d", "x", "y", "fcn", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "require_d_accessors", "__commonJSMin", "exports", "module", "unary7d", "x", "y", "fcn", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "require_d_accessors", "__commonJSMin", "exports", "module", "unary8d", "x", "y", "fcn", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "require_d_accessors", "__commonJSMin", "exports", "module", "unary9d", "x", "y", "fcn", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "require_d_accessors", "__commonJSMin", "exports", "module", "unary10d", "x", "y", "fcn", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dx9", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "dy9", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "S9", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "i9", "require_nd_accessors", "__commonJSMin", "exports", "module", "numel", "vind2bind", "MODE", "unarynd", "x", "y", "fcn", "xbuf", "ybuf", "ordx", "ordy", "len", "get", "set", "sh", "sx", "sy", "ox", "oy", "ix", "iy", "i", "require_d", "__commonJSMin", "exports", "module", "unary0d", "x", "y", "fcn", "require_d", "__commonJSMin", "exports", "module", "unary1d", "x", "y", "fcn", "xbuf", "ybuf", "dx0", "dy0", "S0", "ix", "iy", "i0", "require_d", "__commonJSMin", "exports", "module", "unary2d", "x", "y", "fcn", "xbuf", "ybuf", "dx0", "dx1", "dy0", "dy1", "sh", "S0", "S1", "sx", "sy", "ix", "iy", "i0", "i1", "require_d", "__commonJSMin", "exports", "module", "unary3d", "x", "y", "fcn", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dy0", "dy1", "dy2", "sh", "S0", "S1", "S2", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "require_d", "__commonJSMin", "exports", "module", "unary4d", "x", "y", "fcn", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dy0", "dy1", "dy2", "dy3", "sh", "S0", "S1", "S2", "S3", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "require_d", "__commonJSMin", "exports", "module", "unary5d", "x", "y", "fcn", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dy0", "dy1", "dy2", "dy3", "dy4", "sh", "S0", "S1", "S2", "S3", "S4", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "require_d", "__commonJSMin", "exports", "module", "unary6d", "x", "y", "fcn", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "require_d", "__commonJSMin", "exports", "module", "unary7d", "x", "y", "fcn", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "require_d", "__commonJSMin", "exports", "module", "unary8d", "x", "y", "fcn", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "require_d", "__commonJSMin", "exports", "module", "unary9d", "x", "y", "fcn", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "require_d", "__commonJSMin", "exports", "module", "unary10d", "x", "y", "fcn", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dx9", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "dy9", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "S9", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "i9", "require_nd", "__commonJSMin", "exports", "module", "numel", "vind2bind", "MODE", "unarynd", "x", "y", "fcn", "xbuf", "ybuf", "ordx", "ordy", "len", "sh", "sx", "sy", "ox", "oy", "ix", "iy", "i", "require_main", "__commonJSMin", "exports", "module", "iterationOrder", "minmaxViewBufferIndex", "ndarray2object", "blockedaccessorunary2d", "blockedaccessorunary3d", "blockedaccessorunary4d", "blockedaccessorunary5d", "blockedaccessorunary6d", "blockedaccessorunary7d", "blockedaccessorunary8d", "blockedaccessorunary9d", "blockedaccessorunary10d", "blockedunary2d", "blockedunary3d", "blockedunary4d", "blockedunary5d", "blockedunary6d", "blockedunary7d", "blockedunary8d", "blockedunary9d", "blockedunary10d", "accessorunary0d", "accessorunary1d", "accessorunary2d", "accessorunary3d", "accessorunary4d", "accessorunary5d", "accessorunary6d", "accessorunary7d", "accessorunary8d", "accessorunary9d", "accessorunary10d", "accessorunarynd", "unary0d", "unary1d", "unary2d", "unary3d", "unary4d", "unary5d", "unary6d", "unary7d", "unary8d", "unary9d", "unary10d", "unarynd", "UNARY", "ACCESSOR_UNARY", "BLOCKED_UNARY", "BLOCKED_ACCESSOR_UNARY", "MAX_DIMS", "unary", "arrays", "fcn", "ndims", "xmmv", "ymmv", "shx", "shy", "iox", "ioy", "len", "sx", "sy", "ox", "oy", "ns", "x", "y", "d", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary2d", "x", "y", "fcn", "clbk", "thisArg", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dy0", "dy1", "ox1", "oy1", "sh", "s0", "s1", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "j0", "j1", "o", "v", "i", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary3d", "x", "y", "fcn", "clbk", "thisArg", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dy0", "dy1", "dy2", "ox1", "ox2", "oy1", "oy2", "sh", "s0", "s1", "s2", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "j0", "j1", "j2", "o", "v", "i", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary4d", "x", "y", "fcn", "clbk", "thisArg", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dy0", "dy1", "dy2", "dy3", "ox1", "ox2", "ox3", "oy1", "oy2", "oy3", "sh", "s0", "s1", "s2", "s3", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "j0", "j1", "j2", "j3", "o", "v", "i", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary5d", "x", "y", "fcn", "clbk", "thisArg", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dy0", "dy1", "dy2", "dy3", "dy4", "ox1", "ox2", "ox3", "ox4", "oy1", "oy2", "oy3", "oy4", "sh", "s0", "s1", "s2", "s3", "s4", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "j0", "j1", "j2", "j3", "j4", "o", "v", "i", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary6d", "x", "y", "fcn", "clbk", "thisArg", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "ox1", "ox2", "ox3", "ox4", "ox5", "oy1", "oy2", "oy3", "oy4", "oy5", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "j0", "j1", "j2", "j3", "j4", "j5", "o", "v", "i", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary7d", "x", "y", "fcn", "clbk", "thisArg", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "o", "v", "i", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary8d", "x", "y", "fcn", "clbk", "thisArg", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "oy7", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "o", "v", "i", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary9d", "x", "y", "fcn", "clbk", "thisArg", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "ox8", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "oy7", "oy8", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "j8", "o", "v", "i", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary10d", "x", "y", "fcn", "clbk", "thisArg", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dx9", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "dy9", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "ox8", "ox9", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "oy7", "oy8", "oy9", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "s9", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "i9", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "j8", "j9", "o", "v", "i", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary2d", "x", "y", "fcn", "clbk", "thisArg", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dy0", "dy1", "ox1", "oy1", "sh", "s0", "s1", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "j0", "j1", "o", "v", "i", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary3d", "x", "y", "fcn", "clbk", "thisArg", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dy0", "dy1", "dy2", "ox1", "ox2", "oy1", "oy2", "sh", "s0", "s1", "s2", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "j0", "j1", "j2", "o", "v", "i", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary4d", "x", "y", "fcn", "clbk", "thisArg", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dy0", "dy1", "dy2", "dy3", "ox1", "ox2", "ox3", "oy1", "oy2", "oy3", "sh", "s0", "s1", "s2", "s3", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "j0", "j1", "j2", "j3", "o", "v", "i", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary5d", "x", "y", "fcn", "clbk", "thisArg", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dy0", "dy1", "dy2", "dy3", "dy4", "ox1", "ox2", "ox3", "ox4", "oy1", "oy2", "oy3", "oy4", "sh", "s0", "s1", "s2", "s3", "s4", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "j0", "j1", "j2", "j3", "j4", "o", "v", "i", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary6d", "x", "y", "fcn", "clbk", "thisArg", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "ox1", "ox2", "ox3", "ox4", "ox5", "oy1", "oy2", "oy3", "oy4", "oy5", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "j0", "j1", "j2", "j3", "j4", "j5", "o", "v", "i", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary7d", "x", "y", "fcn", "clbk", "thisArg", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "o", "v", "i", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary8d", "x", "y", "fcn", "clbk", "thisArg", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "oy7", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "o", "v", "i", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary9d", "x", "y", "fcn", "clbk", "thisArg", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "ox8", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "oy7", "oy8", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "j8", "o", "v", "i", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary10d", "x", "y", "fcn", "clbk", "thisArg", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dx9", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "dy9", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "ox8", "ox9", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "oy7", "oy8", "oy9", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "s9", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "i9", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "j8", "j9", "o", "v", "i", "require_d_accessors", "__commonJSMin", "exports", "module", "unary0d", "x", "y", "fcn", "clbk", "thisArg", "ox", "oy", "v", "require_d_accessors", "__commonJSMin", "exports", "module", "unary1d", "x", "y", "fcn", "clbk", "thisArg", "xbuf", "ybuf", "get", "set", "dx0", "dy0", "S0", "ix", "iy", "i0", "v", "i", "require_d_accessors", "__commonJSMin", "exports", "module", "unary2d", "x", "y", "fcn", "clbk", "thisArg", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dy0", "dy1", "sh", "S0", "S1", "sx", "sy", "ix", "iy", "i0", "i1", "v", "i", "require_d_accessors", "__commonJSMin", "exports", "module", "unary3d", "x", "y", "fcn", "clbk", "thisArg", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dy0", "dy1", "dy2", "sh", "S0", "S1", "S2", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "v", "i", "require_d_accessors", "__commonJSMin", "exports", "module", "unary4d", "x", "y", "fcn", "clbk", "thisArg", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dy0", "dy1", "dy2", "dy3", "sh", "S0", "S1", "S2", "S3", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "v", "i", "require_d_accessors", "__commonJSMin", "exports", "module", "unary5d", "x", "y", "fcn", "clbk", "thisArg", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dy0", "dy1", "dy2", "dy3", "dy4", "sh", "S0", "S1", "S2", "S3", "S4", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "v", "i", "require_d_accessors", "__commonJSMin", "exports", "module", "unary6d", "x", "y", "fcn", "clbk", "thisArg", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "v", "i", "require_d_accessors", "__commonJSMin", "exports", "module", "unary7d", "x", "y", "fcn", "clbk", "thisArg", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "v", "i", "require_d_accessors", "__commonJSMin", "exports", "module", "unary8d", "x", "y", "fcn", "clbk", "thisArg", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "v", "i", "require_d_accessors", "__commonJSMin", "exports", "module", "unary9d", "x", "y", "fcn", "clbk", "thisArg", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "v", "i", "require_d_accessors", "__commonJSMin", "exports", "module", "unary10d", "x", "y", "fcn", "clbk", "thisArg", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dx9", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "dy9", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "S9", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "i9", "v", "i", "require_nd_accessors", "__commonJSMin", "exports", "module", "numel", "vind2bind", "MODE", "unarynd", "x", "y", "fcn", "clbk", "thisArg", "xbuf", "ybuf", "ordx", "ordy", "len", "get", "set", "sh", "sx", "sy", "ox", "oy", "ix", "iy", "v", "i", "require_d", "__commonJSMin", "exports", "module", "unary0d", "x", "y", "fcn", "clbk", "thisArg", "ox", "oy", "v", "require_d", "__commonJSMin", "exports", "module", "unary1d", "x", "y", "fcn", "clbk", "thisArg", "xbuf", "ybuf", "dx0", "dy0", "S0", "ix", "iy", "i0", "v", "i", "require_d", "__commonJSMin", "exports", "module", "unary2d", "x", "y", "fcn", "clbk", "thisArg", "xbuf", "ybuf", "dx0", "dx1", "dy0", "dy1", "sh", "S0", "S1", "sx", "sy", "ix", "iy", "i0", "i1", "v", "i", "require_d", "__commonJSMin", "exports", "module", "unary3d", "x", "y", "fcn", "clbk", "thisArg", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dy0", "dy1", "dy2", "sh", "S0", "S1", "S2", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "v", "i", "require_d", "__commonJSMin", "exports", "module", "unary4d", "x", "y", "fcn", "clbk", "thisArg", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dy0", "dy1", "dy2", "dy3", "sh", "S0", "S1", "S2", "S3", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "v", "i", "require_d", "__commonJSMin", "exports", "module", "unary5d", "x", "y", "fcn", "clbk", "thisArg", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dy0", "dy1", "dy2", "dy3", "dy4", "sh", "S0", "S1", "S2", "S3", "S4", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "v", "i", "require_d", "__commonJSMin", "exports", "module", "unary6d", "x", "y", "fcn", "clbk", "thisArg", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "v", "i", "require_d", "__commonJSMin", "exports", "module", "unary7d", "x", "y", "fcn", "clbk", "thisArg", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "v", "i", "require_d", "__commonJSMin", "exports", "module", "unary8d", "x", "y", "fcn", "clbk", "thisArg", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "v", "i", "require_d", "__commonJSMin", "exports", "module", "unary9d", "x", "y", "fcn", "clbk", "thisArg", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "v", "i", "require_d", "__commonJSMin", "exports", "module", "unary10d", "x", "y", "fcn", "clbk", "thisArg", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dx9", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "dy9", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "S9", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "i9", "v", "i", "require_nd", "__commonJSMin", "exports", "module", "numel", "vind2bind", "MODE", "unarynd", "x", "y", "fcn", "clbk", "thisArg", "xbuf", "ybuf", "ordx", "ordy", "len", "sh", "sx", "sy", "ox", "oy", "ix", "iy", "v", "i", "require_main", "__commonJSMin", "exports", "module", "iterationOrder", "minmaxViewBufferIndex", "ndarray2object", "blockedaccessorunary2d", "blockedaccessorunary3d", "blockedaccessorunary4d", "blockedaccessorunary5d", "blockedaccessorunary6d", "blockedaccessorunary7d", "blockedaccessorunary8d", "blockedaccessorunary9d", "blockedaccessorunary10d", "blockedunary2d", "blockedunary3d", "blockedunary4d", "blockedunary5d", "blockedunary6d", "blockedunary7d", "blockedunary8d", "blockedunary9d", "blockedunary10d", "accessorunary0d", "accessorunary1d", "accessorunary2d", "accessorunary3d", "accessorunary4d", "accessorunary5d", "accessorunary6d", "accessorunary7d", "accessorunary8d", "accessorunary9d", "accessorunary10d", "accessorunarynd", "unary0d", "unary1d", "unary2d", "unary3d", "unary4d", "unary5d", "unary6d", "unary7d", "unary8d", "unary9d", "unary10d", "unarynd", "UNARY", "ACCESSOR_UNARY", "BLOCKED_UNARY", "BLOCKED_ACCESSOR_UNARY", "MAX_DIMS", "unaryBy", "arrays", "fcn", "clbk", "thisArg", "ndims", "xmmv", "ymmv", "shx", "shy", "iox", "ioy", "len", "sx", "sy", "ox", "oy", "ns", "x", "y", "d", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isFloatingPointDataType", "isRealFloatingPointDataType", "isComplexFloatingPointDataType", "isIntegerDataType", "isSignedIntegerDataType", "isUnsignedIntegerDataType", "isRealDataType", "isNumericDataType", "isDataType", "defaults", "format", "POLICY_TABLE", "DEFAULT_DTYPE", "resolve", "dtype", "policy", "p", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "shape2strides", "strides2offset", "buffer", "format", "ndarray", "numel", "zeros", "dtype", "shape", "order", "ndims", "buf", "len", "st", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "shape2strides", "strides2offset", "buffer", "numel", "getDType", "getShape", "getOrder", "format", "zerosLike", "x", "ndims", "len", "buf", "ord", "sh", "st", "dt", "require_lib", "__commonJSMin", "exports", "module", "main", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "ns", "require_main", "__commonJSMin", "exports", "module", "isndarrayLike", "isCollection", "isNonNegativeInteger", "copy", "getDType", "getShape", "getStrides", "getOffset", "getOrder", "getData", "format", "broadcastArray", "x", "shape", "strides", "dim", "sh", "st", "N", "M", "d", "i", "j", "require_lib", "__commonJSMin", "exports", "module", "main", "require_index_of_types", "__commonJSMin", "exports", "module", "indexOfTypes", "N", "M", "x", "strideX1", "strideX2", "offsetX", "y", "strideY", "offsetY", "ix", "iy", "i", "j", "require_main", "__commonJSMin", "exports", "module", "isNonNegativeInteger", "isPositiveInteger", "isInteger", "isFunctionArray", "isFunction", "isCollection", "isndarrayLike", "format", "getDType", "resolveEnum", "indexOfTypes", "types2enums", "types", "out", "i", "dispatch", "fcns", "data", "nargs", "nin", "nout", "narrays", "nfcns", "fcn", "dispatcher", "arrays", "dtypes", "argc", "idx", "v", "f", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isPlainObject", "hasOwnProp", "isArrayLike", "shape2strides", "strides2offset", "emptyArray", "allocUnsafe", "numel", "ndarray", "defaults", "format", "DTYPE", "ORDER", "empty", "shape", "options", "dtype", "order", "ndims", "opts", "buf", "len", "st", "sh", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isndarrayLike", "isPlainObject", "isNonNegativeIntegerArray", "hasOwnProp", "shape2strides", "strides2offset", "numel", "getDType", "getShape", "getOrder", "ndarray", "emptyArray", "allocUnsafe", "format", "emptyLike", "x", "options", "dtype", "order", "ndims", "opts", "buf", "len", "st", "sh", "require_lib", "__commonJSMin", "exports", "module", "main", "require_re_integer", "__commonJSMin", "exports", "module", "RE_INTEGER", "require_re_subseq", "__commonJSMin", "exports", "module", "RE_SUBSEQ", "require_prop2slice_0d", "__commonJSMin", "exports", "module", "trim", "replace", "MultiSlice", "str2multislice", "seq2multislice", "str2slice", "format", "RE_INTEGER", "RE_SUBSEQ", "prop2slice", "target", "property", "shape", "prop", "ch", "s", "require_prop2slice_1d", "__commonJSMin", "exports", "module", "trim", "replace", "MultiSlice", "str2multislice", "seq2multislice", "str2slice", "format", "RE_INTEGER", "prop2slice", "target", "property", "strict", "shape", "prop", "ch", "s", "require_prop2slice_nd", "__commonJSMin", "exports", "module", "trim", "str2multislice", "seq2multislice", "sargs2multislice", "format", "RE_SUBSEQ", "prop2slice", "target", "property", "strict", "shape", "prop", "ch", "s", "require_has_property", "__commonJSMin", "exports", "module", "propertiesIn", "contains", "ndarray", "defaults", "hasProperty", "require_get_value", "__commonJSMin", "exports", "module", "isFunction", "getValue", "target", "property", "receiver", "value", "wrapper", "args", "i", "require_error_message", "__commonJSMin", "exports", "module", "replace", "errMessage", "msg", "require_error_constructor", "__commonJSMin", "exports", "module", "isRangeError", "isTypeError", "isSyntaxError", "errConstructor", "err", "require_get_slice", "__commonJSMin", "exports", "module", "slice", "errMessage", "errConstructor", "getSlice", "target", "property", "receiver", "prop2slice", "strict", "E", "s", "err", "require_get", "__commonJSMin", "exports", "module", "hasProperty", "getValue", "getSlice", "factory", "prop2slice", "get", "target", "property", "receiver", "require_set_value", "__commonJSMin", "exports", "module", "setValue", "target", "property", "value", "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", "hasOwnProp", "isPlainObject", "isNumber", "isComplexLike", "isAccessorArray", "accessorSetter", "setter", "buffer", "ndarray", "defaults", "format", "ORDER", "scalar2ndarray", "value", "options", "opts", "buf", "flg", "set", "dt", "v", "require_lib", "__commonJSMin", "exports", "module", "main", "require_set_slice", "__commonJSMin", "exports", "module", "sliceAssign", "isndarrayLike", "isNumber", "isInteger", "isComplexLike", "isComplexDataType", "isFloatingDataType", "isUnsignedIntegerDataType", "isSignedIntegerDataType", "isSafeCast", "INT8_MAX", "INT16_MAX", "INT32_MAX", "minDataType", "complexDataType", "scalar2ndarray", "format", "errMessage", "errConstructor", "options", "dtype", "setSlice", "target", "property", "value", "receiver", "prop2slice", "strict", "vdt", "dt", "E", "s", "err", "require_set", "__commonJSMin", "exports", "module", "hasProperty", "setValue", "setSlice", "factory", "prop2slice", "set", "target", "property", "value", "receiver", "require_main", "__commonJSMin", "exports", "module", "setReadOnly", "parent", "inherit", "Proxy", "prop2slice0d", "prop2slice1d", "prop2slicend", "get", "set", "get0d", "set0d", "get1d", "set1d", "getnd", "setnd", "FancyArray", "dtype", "buffer", "shape", "strides", "offset", "order", "options", "handlers", "nargs", "ndims", "require_lib", "__commonJSMin", "exports", "module", "main", "require_defaults", "__commonJSMin", "exports", "module", "require_validate", "__commonJSMin", "exports", "module", "isObject", "hasOwnProp", "isOrder", "isIndexMode", "format", "validate", "opts", "options", "require_main", "__commonJSMin", "exports", "module", "isNonNegativeIntegerArray", "isInteger", "shape2strides", "getSubscripts", "format", "defaults", "validate", "ind2sub", "shape", "idx", "options", "opts", "err", "require_assign", "__commonJSMin", "exports", "module", "isNonNegativeIntegerArray", "isInteger", "shape2strides", "getSubscripts", "format", "defaults", "validate", "ind2sub", "shape", "idx", "options", "out", "opts", "dest", "err", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "assign", "require_main", "__commonJSMin", "exports", "module", "setReadOnly", "isPlainObject", "isBoolean", "isndarrayLike", "isReadOnly", "hasOwnProp", "iteratorSymbol", "zeros", "getShape", "numel", "slice", "nextCartesianIndex", "args2multislice", "format", "nditerColumnEntries", "x", "options", "shape", "ndims", "opts", "iter", "FLG", "idx", "dim", "S0", "N", "i", "next", "end", "factory", "indices", "s", "j", "value", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "setReadOnly", "isPlainObject", "isBoolean", "isndarrayLike", "isReadOnly", "hasOwnProp", "iteratorSymbol", "zeros", "getShape", "numel", "slice", "nextCartesianIndex", "args2multislice", "format", "nditerColumns", "x", "options", "shape", "ndims", "opts", "iter", "FLG", "idx", "dim", "S0", "N", "i", "next", "end", "factory", "s", "j", "value", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "setReadOnly", "isPlainObject", "isOrder", "isndarrayLike", "hasOwnProp", "iteratorSymbol", "zeros", "getShape", "numel", "nextCartesianIndex", "format", "nditerEntries", "x", "options", "shape", "ndims", "opts", "iter", "FLG", "idx", "dim", "N", "i", "next", "end", "factory", "value", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "setReadOnly", "isPlainObject", "isOrder", "isCollection", "isNonNegativeInteger", "hasOwnProp", "iteratorSymbol", "zeros", "numel", "nextCartesianIndex", "format", "nditerIndices", "shape", "options", "ndims", "opts", "iter", "FLG", "idx", "dim", "sh", "N", "i", "next", "end", "factory", "value", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "setReadOnly", "isPlainObject", "isBoolean", "isndarrayLike", "isReadOnly", "hasOwnProp", "iteratorSymbol", "zeros", "getShape", "numel", "slice", "nextCartesianIndex", "args2multislice", "format", "nditerMatrices", "x", "options", "shape", "ndims", "opts", "iter", "FLG", "idx", "dim", "S2", "N", "i", "next", "end", "factory", "s", "j", "value", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "setReadOnly", "isPlainObject", "isBoolean", "isndarrayLike", "isReadOnly", "hasOwnProp", "iteratorSymbol", "zeros", "getShape", "numel", "slice", "nextCartesianIndex", "args2multislice", "format", "nditerMatrixEntries", "x", "options", "shape", "ndims", "opts", "iter", "FLG", "idx", "dim", "S2", "N", "i", "next", "end", "factory", "indices", "s", "j", "value", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "setReadOnly", "isPlainObject", "isBoolean", "isndarrayLike", "isReadOnly", "hasOwnProp", "iteratorSymbol", "zeros", "getShape", "numel", "slice", "nextCartesianIndex", "args2multislice", "format", "nditerRowEntries", "x", "options", "shape", "ndims", "opts", "iter", "FLG", "idx", "dim", "S1", "N", "i", "next", "end", "factory", "indices", "s", "j", "value", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "setReadOnly", "isPlainObject", "isBoolean", "isndarrayLike", "isReadOnly", "hasOwnProp", "iteratorSymbol", "zeros", "getShape", "numel", "slice", "nextCartesianIndex", "args2multislice", "format", "nditerRows", "x", "options", "shape", "ndims", "opts", "iter", "FLG", "idx", "dim", "S1", "N", "i", "next", "end", "factory", "s", "j", "value", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isndarrayLike", "toArray", "getStrides", "getOffset", "getShape", "getOrder", "getData", "format", "ndarray2array", "x", "require_lib", "__commonJSMin", "exports", "module", "ndarray2array", "require_main", "__commonJSMin", "exports", "module", "setReadOnly", "isFunction", "isIteratorLike", "iteratorSymbol", "ndarray2array", "format", "nditer2arrayEach", "iterator", "iter", "FLG", "next", "end", "factory", "v", "value", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "setReadOnly", "isPlainObject", "isOrder", "isndarrayLike", "hasOwnProp", "iteratorSymbol", "zeros", "getShape", "numel", "nextCartesianIndex", "format", "nditerValues", "x", "options", "shape", "ndims", "opts", "iter", "FLG", "idx", "dim", "N", "i", "next", "end", "factory", "value", "require_lib", "__commonJSMin", "exports", "module", "main", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "ns", "require_main", "__commonJSMin", "exports", "module", "isndarrayLike", "isCollection", "isNonNegativeInteger", "broadcast", "format", "maybeBroadcastArray", "x", "shape", "sh", "N", "d", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_next_dtypes", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "objectKeys", "hasOwnProp", "resolveStr", "NEXT_DTYPES", "generateTable", "dtypes", "ntypes", "out", "nextDataType", "dtype", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isNonNegativeInteger", "isCollection", "format", "numel", "x", "ndims", "sh", "n", "d", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_promotion_rules", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "objectKeys", "hasOwnProp", "resolve", "PROMOTION_RULES", "generateFullTable", "dtypes", "ntypes", "out", "tmp", "dt1", "dt2", "j", "i", "promotionRules", "dtype1", "dtype2", "o", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isndarrayLike", "isMultiSlice", "isArrayLikeObject", "isPlainObject", "isBoolean", "hasOwnProp", "MultiSlice", "args2multislice", "base", "getShape", "format", "slice", "x", "s", "options", "nargs", "opts", "args", "sh", "S", "i", "err", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isndarrayLike", "isMultiSlice", "isArrayLikeObject", "isPlainObject", "isBoolean", "isReadOnly", "hasOwnProp", "MultiSlice", "args2multislice", "base", "getShape", "format", "sliceAssign", "x", "y", "s", "options", "nargs", "opts", "args", "sh", "S", "i", "err", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isPlainObject", "isBoolean", "isInteger", "isndarrayLike", "isUndefined", "isSlice", "isNull", "hasOwnProp", "Slice", "base", "format", "sliceDimension", "x", "dim", "s", "options", "slice", "opts", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isPlainObject", "isBoolean", "isInteger", "isndarrayLike", "hasOwnProp", "base", "format", "sliceDimensionFrom", "x", "dim", "start", "options", "opts", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isPlainObject", "isBoolean", "isInteger", "isndarrayLike", "hasOwnProp", "base", "format", "sliceDimensionTo", "x", "dim", "stop", "options", "opts", "require_lib", "__commonJSMin", "exports", "module", "main", "require_defaults", "__commonJSMin", "exports", "module", "require_validate", "__commonJSMin", "exports", "module", "isObject", "hasOwnProp", "isArray", "isOrder", "isIndexMode", "format", "validate", "opts", "options", "i", "require_main", "__commonJSMin", "exports", "module", "isNonNegativeIntegerArray", "isInteger", "shape2strides", "getIndex", "format", "defaults", "validate", "sub2ind", "options", "shape", "ndims", "args", "opts", "err", "len", "i", "j", "require_lib", "__commonJSMin", "exports", "module", "sub2ind", "require_main", "__commonJSMin", "exports", "module", "isPlainObject", "hasOwnProp", "isArrayLike", "shape2strides", "strides2offset", "buffer", "numel", "ndarray", "defaults", "format", "DTYPE", "ORDER", "zeros", "shape", "options", "dtype", "order", "ndims", "opts", "buf", "len", "st", "sh", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isndarrayLike", "isPlainObject", "isNonNegativeIntegerArray", "hasOwnProp", "shape2strides", "strides2offset", "buffer", "numel", "getDType", "getShape", "getOrder", "ndarray", "format", "zerosLike", "x", "options", "dtype", "order", "ndims", "opts", "buf", "len", "st", "sh", "require_lib", "__commonJSMin", "exports", "module", "main", "setReadOnly", "ns"] + "sources": ["../base/shape2strides/lib/main.js", "../base/shape2strides/lib/assign.js", "../base/shape2strides/lib/index.js", "../base/strides2offset/lib/main.js", "../base/strides2offset/lib/index.js", "../base/strides2order/lib/main.js", "../base/strides2order/lib/index.js", "../base/numel/lib/main.js", "../base/numel/lib/index.js", "../orders/lib/orders.json", "../orders/lib/main.js", "../orders/lib/enum.js", "../orders/lib/index.js", "../base/assert/is-order/lib/main.js", "../base/assert/is-order/lib/index.js", "../dtypes/lib/dtypes.json", "../dtypes/lib/main.js", "../dtypes/lib/enum.js", "../dtypes/lib/assign.js", "../dtypes/lib/index.js", "../base/assert/is-data-type/lib/main.js", "../base/assert/is-data-type/lib/index.js", "../base/minmax-view-buffer-index/lib/main.js", "../base/minmax-view-buffer-index/lib/assign.js", "../base/minmax-view-buffer-index/lib/index.js", "../base/assert/is-buffer-length-compatible/lib/main.js", "../base/assert/is-buffer-length-compatible/lib/index.js", "../base/bytes-per-element/lib/bytes_per_element.json", "../base/bytes-per-element/lib/main.js", "../base/bytes-per-element/lib/index.js", "../base/iteration-order/lib/main.js", "../base/iteration-order/lib/index.js", "../base/ctor/lib/is_column_major_contiguous.js", "../base/ctor/lib/is_row_major_contiguous.js", "../base/ctor/lib/is_contiguous.js", "../base/ctor/lib/copy_flags.js", "../base/ctor/lib/iget.js", "../base/ctor/lib/iset.js", "../base/ctor/lib/set.js", "../base/ctor/lib/get.js", "../base/ctor/lib/tojson.js", "../base/ctor/lib/tostring.js", "../index-modes/lib/modes.json", "../index-modes/lib/main.js", "../index-modes/lib/enum.js", "../index-modes/lib/index.js", "../base/ctor/lib/meta2dataview.js", "../base/ctor/lib/meta2dataview.polyfill.js", "../base/ctor/lib/main.js", "../base/ctor/lib/index.js", "../defaults/lib/main.js", "../defaults/lib/get.js", "../defaults/lib/index.js", "../base/clamp-index/lib/main.js", "../base/clamp-index/lib/index.js", "../base/wrap-index/lib/main.js", "../base/wrap-index/lib/index.js", "../base/normalize-index/lib/main.js", "../base/normalize-index/lib/index.js", "../base/assert/is-index-mode/lib/main.js", "../base/assert/is-index-mode/lib/index.js", "../base/ind/lib/factory.js", "../base/ind/lib/main.js", "../base/ind/lib/index.js", "../ctor/lib/iget.js", "../ctor/lib/iset.js", "../ctor/lib/get.js", "../ctor/lib/set.js", "../ctor/lib/copy_array.js", "../ctor/lib/validate.js", "../ctor/lib/main.js", "../ctor/lib/index.js", "../casting-modes/lib/modes.json", "../casting-modes/lib/main.js", "../casting-modes/lib/enum.js", "../casting-modes/lib/index.js", "../base/assert/is-casting-mode/lib/main.js", "../base/assert/is-casting-mode/lib/index.js", "../base/dtype-enum2str/lib/main.js", "../base/dtype-enum2str/lib/index.js", "../base/dtype-str2enum/lib/main.js", "../base/dtype-str2enum/lib/index.js", "../base/dtype-resolve-str/lib/main.js", "../base/dtype-resolve-str/lib/index.js", "../safe-casts/lib/safe_casts.json", "../safe-casts/lib/main.js", "../safe-casts/lib/index.js", "../base/assert/is-safe-data-type-cast/lib/main.js", "../base/assert/is-safe-data-type-cast/lib/index.js", "../mostly-safe-casts/lib/data.json", "../mostly-safe-casts/lib/main.js", "../mostly-safe-casts/lib/index.js", "../base/assert/is-mostly-safe-data-type-cast/lib/main.js", "../base/assert/is-mostly-safe-data-type-cast/lib/index.js", "../same-kind-casts/lib/same_kind_casts.json", "../same-kind-casts/lib/main.js", "../same-kind-casts/lib/index.js", "../base/assert/is-same-kind-data-type-cast/lib/main.js", "../base/assert/is-same-kind-data-type-cast/lib/index.js", "../base/assert/is-allowed-data-type-cast/lib/main.js", "../base/assert/is-allowed-data-type-cast/lib/index.js", "../base/buffer-ctors/lib/ctors.js", "../base/buffer-ctors/lib/main.js", "../base/buffer-ctors/lib/index.js", "../base/buffer/lib/zeros.js", "../base/buffer/lib/main.js", "../base/buffer/lib/index.js", "../base/buffer-dtype/lib/ctor2dtype.js", "../base/buffer-dtype/lib/ctors.js", "../base/buffer-dtype/lib/dtypes.js", "../base/buffer-dtype/lib/main.js", "../base/buffer-dtype/lib/index.js", "../dtype/lib/main.js", "../dtype/lib/index.js", "../shape/lib/main.js", "../shape/lib/index.js", "../strides/lib/main.js", "../strides/lib/index.js", "../offset/lib/main.js", "../offset/lib/index.js", "../ndims/lib/main.js", "../ndims/lib/index.js", "../order/lib/main.js", "../order/lib/index.js", "../data-buffer/lib/main.js", "../data-buffer/lib/index.js", "../array/lib/is_array_like_object.js", "../array/lib/defaults.js", "../array/lib/cast_buffer.js", "../array/lib/copy_view.js", "../array/lib/expand_shape.js", "../array/lib/expand_strides.js", "../array/lib/main.js", "../array/lib/index.js", "../base/assert/is-buffer-length-compatible-shape/lib/main.js", "../base/assert/is-buffer-length-compatible-shape/lib/index.js", "../base/assert/is-column-major/lib/main.js", "../base/assert/is-column-major/lib/index.js", "../base/assert/is-single-segment-compatible/lib/main.js", "../base/assert/is-single-segment-compatible/lib/index.js", "../base/assert/is-column-major-contiguous/lib/main.js", "../base/assert/is-column-major-contiguous/lib/index.js", "../base/assert/is-complex-floating-point-data-type/lib/main.js", "../base/assert/is-complex-floating-point-data-type/lib/index.js", "../base/assert/is-contiguous/lib/main.js", "../base/assert/is-contiguous/lib/index.js", "../base/assert/is-floating-point-data-type/lib/main.js", "../base/assert/is-floating-point-data-type/lib/index.js", "../base/assert/is-integer-data-type/lib/main.js", "../base/assert/is-integer-data-type/lib/index.js", "../base/assert/is-numeric-data-type/lib/main.js", "../base/assert/is-numeric-data-type/lib/index.js", "../base/assert/is-read-only/lib/main.js", "../base/assert/is-read-only/lib/index.js", "../base/assert/is-real-data-type/lib/main.js", "../base/assert/is-real-data-type/lib/index.js", "../base/assert/is-real-floating-point-data-type/lib/main.js", "../base/assert/is-real-floating-point-data-type/lib/index.js", "../base/assert/is-row-major/lib/main.js", "../base/assert/is-row-major/lib/index.js", "../base/assert/is-row-major-contiguous/lib/main.js", "../base/assert/is-row-major-contiguous/lib/index.js", "../base/assert/is-signed-integer-data-type/lib/main.js", "../base/assert/is-signed-integer-data-type/lib/index.js", "../base/assert/is-unsigned-integer-data-type/lib/main.js", "../base/assert/is-unsigned-integer-data-type/lib/index.js", "../base/assert/lib/index.js", "../base/dtype/lib/main.js", "../base/dtype/lib/index.js", "../base/shape/lib/main.js", "../base/shape/lib/index.js", "../base/strides/lib/main.js", "../base/strides/lib/index.js", "../base/offset/lib/main.js", "../base/offset/lib/index.js", "../base/order/lib/main.js", "../base/order/lib/index.js", "../base/data-buffer/lib/main.js", "../base/data-buffer/lib/index.js", "../base/ndarraylike2object/lib/main.js", "../base/ndarraylike2object/lib/index.js", "../base/unary-loop-interchange-order/lib/sort2ins.js", "../base/unary-loop-interchange-order/lib/main.js", "../base/unary-loop-interchange-order/lib/index.js", "../base/unary-tiling-block-size/lib/defaults.js", "../base/unary-tiling-block-size/lib/main.js", "../base/unary-tiling-block-size/lib/index.js", "../base/assign/lib/2d_blocked_accessors.js", "../base/assign/lib/3d_blocked_accessors.js", "../base/assign/lib/4d_blocked_accessors.js", "../base/assign/lib/5d_blocked_accessors.js", "../base/assign/lib/6d_blocked_accessors.js", "../base/assign/lib/7d_blocked_accessors.js", "../base/assign/lib/8d_blocked_accessors.js", "../base/assign/lib/9d_blocked_accessors.js", "../base/assign/lib/10d_blocked_accessors.js", "../base/assign/lib/2d_blocked.js", "../base/assign/lib/3d_blocked.js", "../base/assign/lib/4d_blocked.js", "../base/assign/lib/5d_blocked.js", "../base/assign/lib/6d_blocked.js", "../base/assign/lib/7d_blocked.js", "../base/assign/lib/8d_blocked.js", "../base/assign/lib/9d_blocked.js", "../base/assign/lib/10d_blocked.js", "../base/assign/lib/0d_accessors.js", "../base/assign/lib/1d_accessors.js", "../base/assign/lib/2d_accessors.js", "../base/assign/lib/3d_accessors.js", "../base/assign/lib/4d_accessors.js", "../base/assign/lib/5d_accessors.js", "../base/assign/lib/6d_accessors.js", "../base/assign/lib/7d_accessors.js", "../base/assign/lib/8d_accessors.js", "../base/assign/lib/9d_accessors.js", "../base/assign/lib/10d_accessors.js", "../base/vind2bind/lib/main.js", "../base/vind2bind/lib/index.js", "../base/assign/lib/nd_accessors.js", "../base/assign/lib/0d.js", "../base/assign/lib/1d.js", "../base/assign/lib/2d.js", "../base/assign/lib/3d.js", "../base/assign/lib/4d.js", "../base/assign/lib/5d.js", "../base/assign/lib/6d.js", "../base/assign/lib/7d.js", "../base/assign/lib/8d.js", "../base/assign/lib/9d.js", "../base/assign/lib/10d.js", "../base/assign/lib/nd.js", "../base/assign/lib/main.js", "../base/assign/lib/index.js", "../base/binary-loop-interchange-order/lib/sort2ins.js", "../base/binary-loop-interchange-order/lib/main.js", "../base/binary-loop-interchange-order/lib/index.js", "../base/binary-tiling-block-size/lib/defaults.js", "../base/binary-tiling-block-size/lib/main.js", "../base/binary-tiling-block-size/lib/index.js", "../base/bind2vind/lib/main.js", "../base/bind2vind/lib/index.js", "../base/broadcast-array/lib/main.js", "../base/broadcast-array/lib/index.js", "../base/broadcast-scalar/lib/main.js", "../base/broadcast-scalar/lib/index.js", "../base/broadcast-shapes/lib/main.js", "../base/broadcast-shapes/lib/index.js", "../base/buffer-dtype-enum/lib/main.js", "../base/buffer-dtype-enum/lib/index.js", "../base/dtype-char/lib/table.js", "../base/dtype-char/lib/main.js", "../base/dtype-char/lib/index.js", "../base/char2dtype/lib/main.js", "../base/char2dtype/lib/index.js", "../base/dtype-desc/lib/table.js", "../base/dtype-desc/lib/main.js", "../base/dtype-desc/lib/index.js", "../base/dtype-resolve-enum/lib/main.js", "../base/dtype-resolve-enum/lib/index.js", "../base/dtype2c/lib/table.json", "../base/dtype2c/lib/main.js", "../base/dtype2c/lib/index.js", "../base/dtypes2signatures/lib/main.js", "../base/dtypes2signatures/lib/index.js", "../base/empty/lib/main.js", "../base/empty/lib/index.js", "../base/empty-like/lib/main.js", "../base/empty-like/lib/index.js", "../base/expand-dimensions/lib/main.js", "../base/expand-dimensions/lib/index.js", "../base/slice/lib/slice_start.js", "../base/slice/lib/slice_strides.js", "../base/slice/lib/empty.js", "../base/slice/lib/main.js", "../base/slice/lib/index.js", "../base/ndims/lib/main.js", "../base/ndims/lib/index.js", "../base/reverse-dimension/lib/main.js", "../base/reverse-dimension/lib/index.js", "../base/fliplr/lib/main.js", "../base/fliplr/lib/index.js", "../base/flipud/lib/main.js", "../base/flipud/lib/index.js", "../base/from-scalar/lib/main.js", "../base/from-scalar/lib/index.js", "../base/ind2sub/lib/assign.js", "../base/ind2sub/lib/main.js", "../base/ind2sub/lib/index.js", "../base/max-view-buffer-index/lib/main.js", "../base/max-view-buffer-index/lib/index.js", "../base/maybe-broadcast-array/lib/main.js", "../base/maybe-broadcast-array/lib/index.js", "../base/meta-data-props/lib/main.js", "../base/meta-data-props/lib/index.js", "../base/min-view-buffer-index/lib/main.js", "../base/min-view-buffer-index/lib/index.js", "../base/next-cartesian-index/lib/assign.js", "../base/next-cartesian-index/lib/main.js", "../base/next-cartesian-index/lib/index.js", "../base/nonsingleton-dimensions/lib/main.js", "../base/nonsingleton-dimensions/lib/index.js", "../base/nullary-loop-interchange-order/lib/sort2ins.js", "../base/nullary-loop-interchange-order/lib/main.js", "../base/nullary-loop-interchange-order/lib/index.js", "../base/nullary-tiling-block-size/lib/defaults.js", "../base/nullary-tiling-block-size/lib/main.js", "../base/nullary-tiling-block-size/lib/index.js", "../base/nullary/lib/2d_blocked_accessors.js", "../base/nullary/lib/3d_blocked_accessors.js", "../base/nullary/lib/4d_blocked_accessors.js", "../base/nullary/lib/5d_blocked_accessors.js", "../base/nullary/lib/6d_blocked_accessors.js", "../base/nullary/lib/7d_blocked_accessors.js", "../base/nullary/lib/8d_blocked_accessors.js", "../base/nullary/lib/9d_blocked_accessors.js", "../base/nullary/lib/10d_blocked_accessors.js", "../base/nullary/lib/2d_blocked.js", "../base/nullary/lib/3d_blocked.js", "../base/nullary/lib/4d_blocked.js", "../base/nullary/lib/5d_blocked.js", "../base/nullary/lib/6d_blocked.js", "../base/nullary/lib/7d_blocked.js", "../base/nullary/lib/8d_blocked.js", "../base/nullary/lib/9d_blocked.js", "../base/nullary/lib/10d_blocked.js", "../base/nullary/lib/0d_accessors.js", "../base/nullary/lib/1d_accessors.js", "../base/nullary/lib/2d_accessors.js", "../base/nullary/lib/3d_accessors.js", "../base/nullary/lib/4d_accessors.js", "../base/nullary/lib/5d_accessors.js", "../base/nullary/lib/6d_accessors.js", "../base/nullary/lib/7d_accessors.js", "../base/nullary/lib/8d_accessors.js", "../base/nullary/lib/9d_accessors.js", "../base/nullary/lib/10d_accessors.js", "../base/nullary/lib/nd_accessors.js", "../base/nullary/lib/0d.js", "../base/nullary/lib/1d.js", "../base/nullary/lib/2d.js", "../base/nullary/lib/3d.js", "../base/nullary/lib/4d.js", "../base/nullary/lib/5d.js", "../base/nullary/lib/6d.js", "../base/nullary/lib/7d.js", "../base/nullary/lib/8d.js", "../base/nullary/lib/9d.js", "../base/nullary/lib/10d.js", "../base/nullary/lib/nd.js", "../base/nullary/lib/main.js", "../base/nullary/lib/index.js", "../output-dtype-policies/lib/policies.json", "../output-dtype-policies/lib/main.js", "../output-dtype-policies/lib/enum.js", "../output-dtype-policies/lib/assign.js", "../output-dtype-policies/lib/index.js", "../base/output-policy-enum2str/lib/main.js", "../base/output-policy-enum2str/lib/index.js", "../base/output-policy-str2enum/lib/main.js", "../base/output-policy-str2enum/lib/index.js", "../base/output-policy-resolve-enum/lib/main.js", "../base/output-policy-resolve-enum/lib/index.js", "../base/output-policy-resolve-str/lib/main.js", "../base/output-policy-resolve-str/lib/index.js", "../base/prepend-singleton-dimensions/lib/main.js", "../base/prepend-singleton-dimensions/lib/index.js", "../base/remove-singleton-dimensions/lib/main.js", "../base/remove-singleton-dimensions/lib/index.js", "../base/reverse/lib/main.js", "../base/reverse/lib/index.js", "../base/serialize-meta-data/lib/main.js", "../base/serialize-meta-data/lib/polyfill.js", "../base/serialize-meta-data/lib/index.js", "../base/singleton-dimensions/lib/main.js", "../base/singleton-dimensions/lib/index.js", "../base/slice-assign/lib/main.js", "../base/slice-assign/lib/index.js", "../base/slice-dimension/lib/main.js", "../base/slice-dimension/lib/index.js", "../base/slice-dimension-from/lib/main.js", "../base/slice-dimension-from/lib/index.js", "../base/slice-dimension-to/lib/main.js", "../base/slice-dimension-to/lib/index.js", "../base/slice-from/lib/main.js", "../base/slice-from/lib/index.js", "../base/slice-to/lib/main.js", "../base/slice-to/lib/index.js", "../base/sub2ind/lib/main.js", "../base/sub2ind/lib/index.js", "../base/to-array/lib/recurse.js", "../base/to-array/lib/main.js", "../base/to-array/lib/index.js", "../base/transpose/lib/main.js", "../base/transpose/lib/index.js", "../base/unary/lib/2d_blocked_accessors.js", "../base/unary/lib/3d_blocked_accessors.js", "../base/unary/lib/4d_blocked_accessors.js", "../base/unary/lib/5d_blocked_accessors.js", "../base/unary/lib/6d_blocked_accessors.js", "../base/unary/lib/7d_blocked_accessors.js", "../base/unary/lib/8d_blocked_accessors.js", "../base/unary/lib/9d_blocked_accessors.js", "../base/unary/lib/10d_blocked_accessors.js", "../base/unary/lib/2d_blocked.js", "../base/unary/lib/3d_blocked.js", "../base/unary/lib/4d_blocked.js", "../base/unary/lib/5d_blocked.js", "../base/unary/lib/6d_blocked.js", "../base/unary/lib/7d_blocked.js", "../base/unary/lib/8d_blocked.js", "../base/unary/lib/9d_blocked.js", "../base/unary/lib/10d_blocked.js", "../base/unary/lib/0d_accessors.js", "../base/unary/lib/1d_accessors.js", "../base/unary/lib/2d_accessors.js", "../base/unary/lib/3d_accessors.js", "../base/unary/lib/4d_accessors.js", "../base/unary/lib/5d_accessors.js", "../base/unary/lib/6d_accessors.js", "../base/unary/lib/7d_accessors.js", "../base/unary/lib/8d_accessors.js", "../base/unary/lib/9d_accessors.js", "../base/unary/lib/10d_accessors.js", "../base/unary/lib/nd_accessors.js", "../base/unary/lib/0d.js", "../base/unary/lib/1d.js", "../base/unary/lib/2d.js", "../base/unary/lib/3d.js", "../base/unary/lib/4d.js", "../base/unary/lib/5d.js", "../base/unary/lib/6d.js", "../base/unary/lib/7d.js", "../base/unary/lib/8d.js", "../base/unary/lib/9d.js", "../base/unary/lib/10d.js", "../base/unary/lib/nd.js", "../base/unary/lib/main.js", "../base/unary/lib/index.js", "../base/unary-by/lib/2d_blocked_accessors.js", "../base/unary-by/lib/3d_blocked_accessors.js", "../base/unary-by/lib/4d_blocked_accessors.js", "../base/unary-by/lib/5d_blocked_accessors.js", "../base/unary-by/lib/6d_blocked_accessors.js", "../base/unary-by/lib/7d_blocked_accessors.js", "../base/unary-by/lib/8d_blocked_accessors.js", "../base/unary-by/lib/9d_blocked_accessors.js", "../base/unary-by/lib/10d_blocked_accessors.js", "../base/unary-by/lib/2d_blocked.js", "../base/unary-by/lib/3d_blocked.js", "../base/unary-by/lib/4d_blocked.js", "../base/unary-by/lib/5d_blocked.js", "../base/unary-by/lib/6d_blocked.js", "../base/unary-by/lib/7d_blocked.js", "../base/unary-by/lib/8d_blocked.js", "../base/unary-by/lib/9d_blocked.js", "../base/unary-by/lib/10d_blocked.js", "../base/unary-by/lib/0d_accessors.js", "../base/unary-by/lib/1d_accessors.js", "../base/unary-by/lib/2d_accessors.js", "../base/unary-by/lib/3d_accessors.js", "../base/unary-by/lib/4d_accessors.js", "../base/unary-by/lib/5d_accessors.js", "../base/unary-by/lib/6d_accessors.js", "../base/unary-by/lib/7d_accessors.js", "../base/unary-by/lib/8d_accessors.js", "../base/unary-by/lib/9d_accessors.js", "../base/unary-by/lib/10d_accessors.js", "../base/unary-by/lib/nd_accessors.js", "../base/unary-by/lib/0d.js", "../base/unary-by/lib/1d.js", "../base/unary-by/lib/2d.js", "../base/unary-by/lib/3d.js", "../base/unary-by/lib/4d.js", "../base/unary-by/lib/5d.js", "../base/unary-by/lib/6d.js", "../base/unary-by/lib/7d.js", "../base/unary-by/lib/8d.js", "../base/unary-by/lib/9d.js", "../base/unary-by/lib/10d.js", "../base/unary-by/lib/nd.js", "../base/unary-by/lib/main.js", "../base/unary-by/lib/index.js", "../base/unary-output-dtype/lib/main.js", "../base/unary-output-dtype/lib/index.js", "../base/zeros/lib/main.js", "../base/zeros/lib/index.js", "../base/zeros-like/lib/main.js", "../base/zeros-like/lib/index.js", "../base/lib/index.js", "../broadcast-array/lib/main.js", "../broadcast-array/lib/index.js", "../dispatch/lib/index_of_types.js", "../dispatch/lib/main.js", "../dispatch/lib/index.js", "../empty/lib/main.js", "../empty/lib/index.js", "../empty-like/lib/main.js", "../empty-like/lib/index.js", "../fancy/lib/re_integer.js", "../fancy/lib/re_subseq.js", "../fancy/lib/prop2slice.0d.js", "../fancy/lib/prop2slice.1d.js", "../fancy/lib/prop2slice.nd.js", "../fancy/lib/has_property.js", "../fancy/lib/get_value.js", "../fancy/lib/error_message.js", "../fancy/lib/error_constructor.js", "../fancy/lib/get_slice.js", "../fancy/lib/get.js", "../fancy/lib/set_value.js", "../min-dtype/lib/main.js", "../min-dtype/lib/index.js", "../from-scalar/lib/main.js", "../from-scalar/lib/index.js", "../fancy/lib/set_slice.js", "../fancy/lib/set.js", "../fancy/lib/main.js", "../fancy/lib/index.js", "../ind2sub/lib/defaults.json", "../ind2sub/lib/validate.js", "../ind2sub/lib/main.js", "../ind2sub/lib/assign.js", "../ind2sub/lib/index.js", "../iter/column-entries/lib/main.js", "../iter/column-entries/lib/index.js", "../iter/columns/lib/main.js", "../iter/columns/lib/index.js", "../iter/entries/lib/main.js", "../iter/entries/lib/index.js", "../iter/indices/lib/main.js", "../iter/indices/lib/index.js", "../iter/matrices/lib/main.js", "../iter/matrices/lib/index.js", "../iter/matrix-entries/lib/main.js", "../iter/matrix-entries/lib/index.js", "../iter/row-entries/lib/main.js", "../iter/row-entries/lib/index.js", "../iter/rows/lib/main.js", "../iter/rows/lib/index.js", "../to-array/lib/main.js", "../to-array/lib/index.js", "../iter/to-array-each/lib/main.js", "../iter/to-array-each/lib/index.js", "../iter/values/lib/main.js", "../iter/values/lib/index.js", "../iter/lib/index.js", "../maybe-broadcast-array/lib/main.js", "../maybe-broadcast-array/lib/index.js", "../next-dtype/lib/next_dtypes.json", "../next-dtype/lib/main.js", "../next-dtype/lib/index.js", "../numel/lib/main.js", "../numel/lib/index.js", "../promotion-rules/lib/promotion_rules.json", "../promotion-rules/lib/main.js", "../promotion-rules/lib/index.js", "../slice/lib/main.js", "../slice/lib/index.js", "../slice-assign/lib/main.js", "../slice-assign/lib/index.js", "../slice-dimension/lib/main.js", "../slice-dimension/lib/index.js", "../slice-dimension-from/lib/main.js", "../slice-dimension-from/lib/index.js", "../slice-dimension-to/lib/main.js", "../slice-dimension-to/lib/index.js", "../sub2ind/lib/defaults.json", "../sub2ind/lib/validate.js", "../sub2ind/lib/main.js", "../sub2ind/lib/index.js", "../zeros/lib/main.js", "../zeros/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) 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// FUNCTIONS //\n\n/**\n* Generates a stride array from an array shape (row-major).\n*\n* @private\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {Array} array strides\n*/\nfunction rowmajor( shape ) {\n\tvar ndims;\n\tvar out;\n\tvar s;\n\tvar i;\n\n\tndims = shape.length;\n\tout = [];\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tout.push( 0 );\n\t}\n\ts = 1;\n\tfor ( i = ndims-1; i >= 0; i-- ) {\n\t\tout[ i ] = s;\n\t\ts *= shape[ i ];\n\t}\n\treturn out;\n}\n\n/**\n* Generates a stride array from an array shape (column-major).\n*\n* @private\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {Array} array strides\n*/\nfunction columnmajor( shape ) {\n\tvar out;\n\tvar s;\n\tvar i;\n\n\tout = [];\n\ts = 1;\n\tfor ( i = 0; i < shape.length; i++ ) {\n\t\tout.push( s );\n\t\ts *= shape[ i ];\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Generates a stride array from an array shape.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @returns {Array} array strides\n*\n* @example\n* var s = shape2strides( [ 3, 2 ], 'row-major' );\n* // returns [ 2, 1 ]\n*\n* s = shape2strides( [ 3, 2 ], 'column-major' );\n* // returns [ 1, 3 ]\n*/\nfunction shape2strides( shape, order ) {\n\tif ( order === 'column-major' ) {\n\t\treturn columnmajor( shape );\n\t}\n\treturn rowmajor( shape );\n}\n\n\n// EXPORTS //\n\nmodule.exports = shape2strides;\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// FUNCTIONS //\n\n/**\n* Generates a stride array from an array shape (row-major).\n*\n* @private\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {(Array|TypedArray|Object)} out - output object\n* @returns {(Array|TypedArray|Object)} array strides\n*/\nfunction rowmajor( shape, out ) {\n\tvar ndims;\n\tvar s;\n\tvar i;\n\n\tndims = shape.length;\n\ts = 1;\n\tfor ( i = ndims-1; i >= 0; i-- ) {\n\t\tout[ i ] = s;\n\t\ts *= shape[ i ];\n\t}\n\treturn out;\n}\n\n/**\n* Generates a stride array from an array shape (column-major).\n*\n* @private\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {(Array|TypedArray|Object)} out - output object\n* @returns {(Array|TypedArray|Object)} array strides\n*/\nfunction columnmajor( shape, out ) {\n\tvar s;\n\tvar i;\n\n\ts = 1;\n\tfor ( i = 0; i < shape.length; i++ ) {\n\t\tout[ i ] = s;\n\t\ts *= shape[ i ];\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Generates a stride array from an array shape.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @param {(Array|TypedArray|Object)} out - output object\n* @returns {(Array|TypedArray|Object)} array strides\n*\n* @example\n* var strides = [ 0, 0 ];\n*\n* var out = shape2strides( [ 3, 2 ], 'row-major', strides );\n* // returns [ 2, 1 ]\n*\n* var bool = ( out === strides );\n* // returns true\n*\n* out = shape2strides( [ 3, 2 ], 'column-major', strides );\n* // returns [ 1, 3 ]\n*/\nfunction shape2strides( shape, order, out ) {\n\tif ( order === 'column-major' ) {\n\t\treturn columnmajor( shape, out );\n\t}\n\treturn rowmajor( shape, out );\n}\n\n\n// EXPORTS //\n\nmodule.exports = shape2strides;\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 stride array from an array shape.\n*\n* @module @stdlib/ndarray/base/shape2strides\n*\n* @example\n* var shape2strides = require( '@stdlib/ndarray/base/shape2strides' );\n*\n* var strides = shape2strides( [ 3, 2 ], 'row-major' );\n* // returns [ 2, 1 ]\n*\n* strides = shape2strides( [ 3, 2 ], 'column-major' );\n* // returns [ 1, 3 ]\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// MAIN //\n\n/**\n* Returns the index offset which specifies the location of the first indexed value in a multidimensional array based on a stride array.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @returns {NonNegativeInteger} offset - offset\n*\n* @example\n* var shape = [ 2, 3, 10 ];\n* var strides = [ 30, -10, 1 ];\n*\n* var offset = strides2offset( shape, strides );\n* // returns 20\n*/\nfunction strides2offset( shape, strides ) {\n\tvar offset;\n\tvar ndims;\n\tvar i;\n\n\tndims = shape.length;\n\toffset = 0;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tif ( strides[ i ] < 0 ) {\n\t\t\t// Note that, since the stride is negative, this operation increments, not decrements, the offset...\n\t\t\toffset -= strides[ i ] * ( shape[ i ]-1 );\n\t\t}\n\t}\n\treturn offset;\n}\n\n\n// EXPORTS //\n\nmodule.exports = strides2offset;\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 index offset which specifies the location of the first indexed value in a multidimensional array based on a stride array.\n*\n* @module @stdlib/ndarray/base/strides2offset\n*\n* @example\n* var strides2offset = require( '@stdlib/ndarray/base/strides2offset' );\n*\n* var shape = [ 2, 3, 10 ];\n* var strides = [ 30, -10, 1 ];\n*\n* var offset = strides2offset( shape, strides );\n* // returns 20\n*/\n\n// MODULES //\n\nvar strides2offset = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = strides2offset;\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 abs = require( '@stdlib/math/base/special/abs' );\n\n\n// MAIN //\n\n/**\n* Determines the order of a multidimensional array based on a provided stride array.\n*\n* @param {IntegerArray} strides - stride array\n* @returns {integer} order\n*\n* @example\n* var strides2order = require( '@stdlib/ndarray/base/strides2order' );\n*\n* var order = strides2order( [ 2, 1 ] );\n* // returns 1\n*\n* order = strides2order( [ 1, 2 ] );\n* // returns 2\n*\n* order = strides2order( [ 1, 1, 1 ] );\n* // returns 3\n*\n* order = strides2order( [ 2, 3, 1 ] );\n* // returns 0\n*/\nfunction strides2order( strides ) {\n\tvar column;\n\tvar ndims;\n\tvar row;\n\tvar s1;\n\tvar s2;\n\tvar i;\n\n\tndims = strides.length;\n\tif ( ndims === 0 ) {\n\t\treturn 0|0; // 'none'\n\t}\n\tcolumn = true;\n\trow = true;\n\n\ts1 = abs( strides[ 0 ] );\n\tfor ( i = 1; i < ndims; i++ ) {\n\t\ts2 = abs( strides[ i ] );\n\t\tif ( column && s2 < s1 ) {\n\t\t\tcolumn = false;\n\t\t} else if ( row && s2 > s1 ) {\n\t\t\trow = false;\n\t\t}\n\t\tif ( row || column ) {\n\t\t\ts1 = s2;\n\t\t} else {\n\t\t\treturn 0|0; // 'none'\n\t\t}\n\t}\n\tif ( row && column ) {\n\t\treturn 3|0; // 'both'\n\t}\n\tif ( row ) {\n\t\treturn 1|0; // 'row-major'\n\t}\n\treturn 2|0; // 'column-major'\n}\n\n\n// EXPORTS //\n\nmodule.exports = strides2order;\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 order of a multidimensional array based on a provided stride array.\n*\n* @module @stdlib/ndarray/base/strides2order\n*\n* @example\n* var strides2order = require( '@stdlib/ndarray/base/strides2order' );\n*\n* var order = strides2order( [ 2, 1 ] );\n* // returns 1\n*\n* order = strides2order( [ 1, 2 ] );\n* // returns 2\n*\n* order = strides2order( [ 1, 1, 1 ] );\n* // returns 3\n*\n* order = strides2order( [ 2, 3, 1 ] );\n* // returns 0\n*/\n\n// MODULES //\n\nvar strides2order = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = strides2order;\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* Returns the number of elements in an array.\n*\n* @param {(NonNegativeIntegerArray|EmptyArray)} shape - array shape\n* @returns {NonNegativeInteger} number of elements\n*\n* @example\n* var n = numel( [ 3, 3, 3 ] );\n* // returns 27\n*/\nfunction numel( shape ) {\n\tvar ndims;\n\tvar n;\n\tvar i;\n\n\tndims = shape.length;\n\tif ( ndims === 0 ) {\n\t\treturn 0;\n\t}\n\tn = 1;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tn *= shape[ i ];\n\t}\n\treturn n;\n}\n\n\n// EXPORTS //\n\nmodule.exports = numel;\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 number of elements in an array.\n*\n* @module @stdlib/ndarray/base/numel\n*\n* @example\n* var numel = require( '@stdlib/ndarray/base/numel' );\n*\n* var n = numel( [ 3, 3, 3 ] );\n* // returns 27\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "[\n\t\"row-major\",\n\t\"column-major\"\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 ORDERS = require( './orders.json' );\n\n\n// MAIN //\n\n/**\n* Returns a list of ndarray orders.\n*\n* @returns {StringArray} list of ndarray orders\n*\n* @example\n* var list = orders();\n* // returns [ 'row-major', 'column-major' ]\n*/\nfunction orders() {\n\treturn ORDERS.slice();\n}\n\n\n// EXPORTS //\n\nmodule.exports = orders;\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 an object mapping supported orders to integer values for purposes of C inter-operation.\n*\n* ## Notes\n*\n* - Downstream consumers of this mapping should **not** rely on specific integer values (e.g., `row-major == 1`). Instead, the object should be used in an opaque manner.\n* - The main purpose of this function is JavaScript and C inter-operation of ndarray objects.\n*\n* @returns {Object} object mapping supported orders to integer values\n*\n* @example\n* var table = enumerated();\n* // returns \n*/\nfunction enumerated() {\n\t// NOTE: the following should match the C `orders.h` enumeration!!!!\n\treturn {\n\t\t// Row-major (C-style):\n\t\t'row-major': 1,\n\n\t\t// Column-major (Fortran-style):\n\t\t'column-major': 2\n\t};\n}\n\n\n// EXPORTS //\n\nmodule.exports = enumerated;\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 ndarray orders.\n*\n* @module @stdlib/ndarray/orders\n*\n* @example\n* var orders = require( '@stdlib/ndarray/orders' );\n*\n* var list = orders();\n* // returns [ 'row-major', 'column-major' ]\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar enumeration = require( './enum.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'enum', enumeration );\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 orders = require( './../../../../orders' );\n\n\n// VARIABLES //\n\nvar ORDERS = orders();\nvar len = ORDERS.length;\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is an ndarray order.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is an ndarray order\n*\n* @example\n* var bool = isOrder( 'row-major' );\n* // returns true\n*\n* bool = isOrder( 'column-major' );\n* // returns true\n*\n* bool = isOrder( 'foo' );\n* // returns false\n*/\nfunction isOrder( v ) {\n\tvar i;\n\tfor ( i = 0; i < len; i++ ) {\n\t\tif ( v === ORDERS[ i ] ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nmodule.exports = isOrder;\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* Test whether an input value is an ndarray order.\n*\n* @module @stdlib/ndarray/base/assert/is-order\n*\n* @example\n* var isOrder = require( '@stdlib/ndarray/base/assert/is-order' );\n*\n* var bool = isOrder( 'row-major' );\n* // returns true\n*\n* bool = isOrder( 'column-major' );\n* // returns true\n*\n* bool = isOrder( 'foo' );\n* // returns false\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "{\n \"all\": [\n \"binary\",\n \"complex64\",\n \"complex128\",\n \"float32\",\n \"float64\",\n \"generic\",\n \"int16\",\n \"int32\",\n \"int8\",\n \"uint16\",\n \"uint32\",\n \"uint8\",\n \"uint8c\"\n ],\n \"floating_point\": [\n \"complex64\",\n \"complex128\",\n \"float32\",\n \"float64\"\n ],\n \"real_floating_point\": [\n \"float32\",\n \"float64\"\n ],\n \"complex_floating_point\": [\n \"complex64\",\n \"complex128\"\n ],\n \"integer\": [\n \"int16\",\n \"int32\",\n \"int8\",\n \"uint16\",\n \"uint32\",\n \"uint8\",\n \"uint8c\"\n ],\n \"signed_integer\": [\n \"int16\",\n \"int32\",\n \"int8\"\n ],\n \"unsigned_integer\": [\n \"uint16\",\n \"uint32\",\n \"uint8\",\n \"uint8c\"\n ],\n \"real\": [\n \"float32\",\n \"float64\",\n \"int16\",\n \"int32\",\n \"int8\",\n \"uint16\",\n \"uint32\",\n \"uint8\",\n \"uint8c\"\n ],\n \"numeric\": [\n \"complex64\",\n \"complex128\",\n \"float32\",\n \"float64\",\n \"int16\",\n \"int32\",\n \"int8\",\n \"uint16\",\n \"uint32\",\n \"uint8\",\n \"uint8c\"\n ]\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 ndarray data types.\n*\n* @param {string} [kind] - data type kind\n* @returns {StringArray} list of ndarray data types\n*\n* @example\n* var list = dtypes();\n* // returns [...]\n*\n* @example\n* var list = dtypes( 'floating_point' );\n* // returns [...]\n*/\nfunction dtypes() {\n\tvar out;\n\tif ( arguments.length === 0 ) {\n\t\treturn DTYPES.all.slice();\n\t}\n\tout = DTYPES[ arguments[ 0 ] ];\n\treturn ( out ) ? out.slice() : [];\n}\n\n\n// EXPORTS //\n\nmodule.exports = dtypes;\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/* eslint-disable stdlib/empty-line-before-comment */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns an object mapping supported data type strings to enumeration constants.\n*\n* ## Notes\n*\n* - Downstream consumers of this mapping should **not** rely on specific integer values (e.g., `INT8 == 0`). Instead, the object should be used in an opaque manner.\n* - The main purpose of this function is JavaScript and C inter-operation of ndarray objects. While certain dtypes, such as \"generic\" and \"binary\", have special behavior in JavaScript, they do not have a direct complement in C.\n*\n* @private\n* @returns {Object} object mapping supported dtypes to enumeration constants\n*\n* @example\n* var table = enumeration();\n* // returns \n*/\nfunction enumeration() {\n\t// NOTE: the following should match the C `dtypes.h` enumeration!!!!\n\treturn {\n\t\t// Boolean data types:\n\t\t'bool': 0,\n\n\t\t// Integer data types:\n\t\t'int8': 1,\n\t\t'uint8': 2,\n\t\t'uint8c': 3,\n\t\t'int16': 4,\n\t\t'uint16': 5,\n\t\t'int32': 6,\n\t\t'uint32': 7,\n\t\t'int64': 8,\n\t\t'uint64': 9,\n\t\t// 'int128': 10, // uncomment once supported\n\t\t// 'uint128': 11,\n\t\t// 'int256': 12,\n\t\t// 'uint256': 13,\n\n\t\t// Floating-point data types:\n\t\t// 'float16': 14,\n\t\t// 'bfloat16': 15,\n\t\t'float32': 10,\n\t\t'float64': 11,\n\t\t// 'float128': 18, // uncomment once supported\n\n\t\t// Complex floating-point number data types:\n\t\t'complex64': 12,\n\t\t'complex128': 13,\n\n\t\t// Data type for \"binary\" data (i.e., data stored in a Node.js `Buffer` object):\n\t\t'binary': 14,\n\n\t\t// Data type for \"generic\" JavaScript values (objects):\n\t\t'generic': 15,\n\n\t\t// Define a signaling value which is guaranteed not to be a valid type enumeration value:\n\t\t'notype': 17,\n\n\t\t// Indicate the start of user defined type numbers (leaving room for type growth above):\n\t\t'userdefined_type': 256\n\t};\n}\n\n\n// EXPORTS //\n\nmodule.exports = enumeration;\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 setReadOnly = require( '@stdlib/utils/define-read-only-property' );\nvar objectKeys = require( '@stdlib/utils/keys' );\n\n\n// MAIN //\n\n/**\n* Copies all enumerable own properties from a source object to a target object as enumerable read-only properties.\n*\n* @private\n* @param {Object} target - target object\n* @param {Object} source - source object\n* @returns {Object} modified target object\n*\n* @example\n* var source = {\n* 'beep': 'boop'\n* };\n* var target = {};\n*\n* var out = assign( target, source );\n* // returns \n*\n* var bool = ( out === target );\n* // returns true\n*\n* var v = target.beep;\n* // returns 'boop'\n*/\nfunction assign( target, source ) {\n\tvar keys;\n\tvar k;\n\tvar i;\n\n\tkeys = objectKeys( source );\n\tfor ( i = 0; i < keys.length; i++ ) {\n\t\tk = keys[ i ];\n\t\tsetReadOnly( target, k, source[ k ] );\n\t}\n\treturn target;\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign;\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 ndarray data types.\n*\n* @module @stdlib/ndarray/dtypes\n*\n* @example\n* var dtypes = require( '@stdlib/ndarray/dtypes' );\n*\n* var list = dtypes();\n* // returns [...]\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar enumeration = require( './enum.js' );\nvar assign = require( './assign.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'enum', enumeration );\nassign( main, enumeration() );\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 contains = require( '@stdlib/array/base/assert/contains' ).factory;\nvar dtypes = require( './../../../../dtypes' );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray data type.\n*\n* @name isDataType\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray data type\n*\n* @example\n* var bool = isDataType( 'binary' );\n* // returns true\n*\n* bool = isDataType( 'float32' );\n* // returns true\n*\n* bool = isDataType( 'float64' );\n* // returns true\n*\n* bool = isDataType( 'generic' );\n* // returns true\n*\n* bool = isDataType( 'int16' );\n* // returns true\n*\n* bool = isDataType( 'int32' );\n* // returns true\n*\n* bool = isDataType( 'int8' );\n* // returns true\n*\n* bool = isDataType( 'uint16' );\n* // returns true\n*\n* bool = isDataType( 'uint32' );\n* // returns true\n*\n* bool = isDataType( 'uint8' );\n* // returns true\n*\n* bool = isDataType( 'uint8c' );\n* // returns true\n*\n* bool = isDataType( 'foo' );\n* // returns false\n*/\nvar isDataType = contains( dtypes() );\n\n\n// EXPORTS //\n\nmodule.exports = isDataType;\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* Test whether an input value is a supported ndarray data type.\n*\n* @module @stdlib/ndarray/base/assert/is-data-type\n*\n* @example\n* var isDataType = require( '@stdlib/ndarray/base/assert/is-data-type' );\n*\n* var bool = isDataType( 'binary' );\n* // returns true\n*\n* bool = isDataType( 'float32' );\n* // returns true\n*\n* bool = isDataType( 'float64' );\n* // returns true\n*\n* bool = isDataType( 'generic' );\n* // returns true\n*\n* bool = isDataType( 'int16' );\n* // returns true\n*\n* bool = isDataType( 'int32' );\n* // returns true\n*\n* bool = isDataType( 'int8' );\n* // returns true\n*\n* bool = isDataType( 'uint16' );\n* // returns true\n*\n* bool = isDataType( 'uint32' );\n* // returns true\n*\n* bool = isDataType( 'uint8' );\n* // returns true\n*\n* bool = isDataType( 'uint8c' );\n* // returns true\n*\n* bool = isDataType( 'foo' );\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) 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* Computes the minimum and maximum linear indices in an underlying data buffer which are accessible to an array view.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @returns {Array} linear indices\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ 10, 1 ];\n* var offset = 10;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 10, 109 ]\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ -10, -1 ];\n* var offset = 99;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 0, 99 ]\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ 1, 10 ];\n* var offset = 10;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 10, 109 ]\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ -1, -10 ];\n* var offset = 99;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 0, 99 ]\n*/\nfunction minmaxViewBufferIndex( shape, strides, offset ) {\n\tvar ndims;\n\tvar min;\n\tvar max;\n\tvar s;\n\tvar i;\n\n\tndims = shape.length;\n\tmin = offset;\n\tmax = offset;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tif ( shape[ i ] === 0 ) {\n\t\t\treturn [ offset, offset ];\n\t\t}\n\t\ts = strides[ i ];\n\t\tif ( s > 0 ) {\n\t\t\tmax += s * ( shape[i]-1 );\n\t\t} else if ( s < 0 ) {\n\t\t\tmin += s * ( shape[i]-1 ); // decrements min\n\t\t}\n\t}\n\treturn [ min, max ];\n}\n\n\n// EXPORTS //\n\nmodule.exports = minmaxViewBufferIndex;\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* Computes the minimum and maximum linear indices in an underlying data buffer which are accessible to an array view and assigns results to a provided output array.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @param {(Array|TypedArray|Object)} out - output object\n* @returns {(Array|TypedArray|Object)} linear indices\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ 10, 1 ];\n* var offset = 10;\n*\n* var out = [ 0, 0 ];\n* var idx = minmaxViewBufferIndex( shape, strides, offset, out );\n* // returns [ 10, 109 ]\n*\n* var bool = ( idx === out );\n* // returns true\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ -10, -1 ];\n* var offset = 99;\n*\n* var out = [ 0, 0 ];\n* var idx = minmaxViewBufferIndex( shape, strides, offset, out );\n* // returns [ 0, 99 ]\n*\n* var bool = ( idx === out );\n* // returns true\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ 1, 10 ];\n* var offset = 10;\n*\n* var out = [ 0, 0 ];\n* var idx = minmaxViewBufferIndex( shape, strides, offset, out );\n* // returns [ 10, 109 ]\n*\n* var bool = ( idx === out );\n* // returns true\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ -1, -10 ];\n* var offset = 99;\n*\n* var out = [ 0, 0 ];\n* var idx = minmaxViewBufferIndex( shape, strides, offset, out );\n* // returns [ 0, 99 ]\n*\n* var bool = ( idx === out );\n* // returns true\n*/\nfunction minmaxViewBufferIndex( shape, strides, offset, out ) {\n\tvar ndims;\n\tvar min;\n\tvar max;\n\tvar s;\n\tvar i;\n\n\tndims = shape.length;\n\tmin = offset;\n\tmax = offset;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tif ( shape[ i ] === 0 ) {\n\t\t\tout[ 0 ] = offset;\n\t\t\tout[ 1 ] = offset;\n\t\t\treturn out;\n\t\t}\n\t\ts = strides[ i ];\n\t\tif ( s > 0 ) {\n\t\t\tmax += s * ( shape[i]-1 );\n\t\t} else if ( s < 0 ) {\n\t\t\tmin += s * ( shape[i]-1 ); // decrements min\n\t\t}\n\t}\n\tout[ 0 ] = min;\n\tout[ 1 ] = max;\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = minmaxViewBufferIndex;\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* Compute the minimum and maximum linear indices in an underlying data buffer which are accessible to an array view.\n*\n* @module @stdlib/ndarray/base/minmax-view-buffer-index\n*\n* @example\n* var minmaxViewBufferIndex = require( '@stdlib/ndarray/base/minmax-view-buffer-index' );\n*\n* var shape = [ 10, 10 ];\n* var strides = [ 10, 1 ];\n* var offset = 10;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 10, 109 ]\n*\n* @example\n* var minmaxViewBufferIndex = require( '@stdlib/ndarray/base/minmax-view-buffer-index' );\n*\n* var shape = [ 10, 10 ];\n* var strides = [ -10, -1 ];\n* var offset = 99;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 0, 99 ]\n*\n* @example\n* var minmaxViewBufferIndex = require( '@stdlib/ndarray/base/minmax-view-buffer-index' );\n*\n* var shape = [ 10, 10 ];\n* var strides = [ 1, 10 ];\n* var offset = 10;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 10, 109 ]\n*\n* @example\n* var minmaxViewBufferIndex = require( '@stdlib/ndarray/base/minmax-view-buffer-index' );\n*\n* var shape = [ 10, 10 ];\n* var strides = [ -1, -10 ];\n* var offset = 99;\n*\n* var idx = minmaxViewBufferIndex( shape, strides, offset );\n* // returns [ 0, 99 ]\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 minmax = require( './../../../../base/minmax-view-buffer-index' );\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if a buffer length is compatible with provided ndarray meta data.\n*\n* @param {NonNegativeInteger} len - buffer length\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @returns {boolean} boolean indicating if a buffer length is compatible\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var bool = isBufferLengthCompatible( 4, shape, strides, offset );\n* // returns true\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 2;\n*\n* var bool = isBufferLengthCompatible( 4, shape, strides, offset );\n* // returns false\n*/\nfunction isBufferLengthCompatible( len, shape, strides, offset ) {\n\t// Determine the minimum and maximum linear indices which are accessible by the array view:\n\tvar buf = minmax( shape, strides, offset );\n\n\t// If the indices are \"inbounds\", then the buffer length is compatible:\n\treturn ( buf[ 0 ] >= 0 && buf[ 1 ] < len );\n}\n\n\n// EXPORTS //\n\nmodule.exports = isBufferLengthCompatible;\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 boolean indicating if a buffer length is compatible with provided ndarray meta data.\n*\n* @module @stdlib/ndarray/base/assert/is-buffer-length-compatible\n*\n* @example\n* var isBufferLengthCompatible = require( '@stdlib/ndarray/base/assert/is-buffer-length-compatible' );\n*\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var bool = isBufferLengthCompatible( 4, shape, strides, offset );\n* // returns true\n*\n* @example\n* var isBufferLengthCompatible = require( '@stdlib/ndarray/base/assert/is-buffer-length-compatible' );\n*\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 2;\n*\n* var bool = isBufferLengthCompatible( 4, shape, strides, offset );\n* // returns false\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "{\n\t\"binary\": 1,\n\t\"bool\": 1,\n\t\"complex64\": 8,\n\t\"complex128\": 16,\n\t\"float16\": 2,\n\t\"bfloat16\": 2,\n\t\"float32\": 4,\n\t\"float64\": 8,\n\t\"float128\": 16,\n\t\"generic\": null,\n\t\"int8\": 1,\n\t\"int16\": 2,\n\t\"int32\": 4,\n\t\"int64\": 8,\n\t\"int128\": 16,\n\t\"int256\": 32,\n\t\"uint8\": 1,\n\t\"uint8c\": 1,\n\t\"uint16\": 2,\n\t\"uint32\": 4,\n\t\"uint64\": 8,\n\t\"uint128\": 16,\n\t\"uint256\": 32\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 BYTES_PER_ELEMENT = require( './bytes_per_element.json' );\n\n\n// MAIN //\n\n/**\n* Returns the number of bytes per element provided an underlying array data type.\n*\n* @param {string} dtype - data type\n* @returns {(NonNegativeInteger|null)} number of bytes per element\n*\n* @example\n* var nbytes = bytesPerElement( 'float64' );\n* // returns 8\n*\n* nbytes = bytesPerElement( 'generic' );\n* // returns null\n*/\nfunction bytesPerElement( dtype ) {\n\treturn BYTES_PER_ELEMENT[ dtype ] || null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = bytesPerElement;\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 number of bytes per element provided an underlying array data type.\n*\n* @module @stdlib/ndarray/base/bytes-per-element\n*\n* @example\n* var bytesPerElement = require( '@stdlib/ndarray/base/bytes-per-element' );\n*\n* var nbytes = bytesPerElement( 'float64' );\n* // returns 8\n*\n* nbytes = bytesPerElement( 'generic' );\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// MAIN //\n\n/**\n* Returns array iteration order.\n*\n* ## Notes\n*\n* - Return value key:\n*\n* - `0`: unordered (i.e., strides of mixed sign; e.g., `[ 9, -3, 1 ]`)\n* - `1`: ordered left-to-right (i.e., all nonnegative strides)\n* - `-1`: ordered right-to-left (i.e., all negative strides)\n*\n* @param {IntegerArray} strides - stride array\n* @returns {integer} iteration order\n*\n* @example\n* var o = iterationOrder( [ 2, 1 ] );\n* // returns 1\n*\n* o = iterationOrder( [ -2, 1 ] );\n* // returns 0\n*\n* o = iterationOrder( [ -2, -1 ] );\n* // returns -1\n*/\nfunction iterationOrder( strides ) {\n\tvar cnt;\n\tvar i;\n\n\tcnt = 0;\n\tfor ( i = 0; i < strides.length; i++ ) {\n\t\tif ( strides[ i ] < 0 ) {\n\t\t\tcnt += 1;\n\t\t}\n\t}\n\tif ( cnt === 0 ) {\n\t\t// All nonnegative strides:\n\t\treturn 1|0; // asm-type annotation\n\t}\n\tif ( cnt === strides.length ) {\n\t\t// All negative strides:\n\t\treturn -1|0; // asm-type annotation\n\t}\n\t// Strides of mixed signs:\n\treturn 0|0; // asm-type annotation\n}\n\n\n// EXPORTS //\n\nmodule.exports = iterationOrder;\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* Given a stride array, determine array iteration order.\n*\n* @module @stdlib/ndarray/base/iteration-order\n*\n* @example\n* var iterationOrder = require( '@stdlib/ndarray/base/iteration-order' );\n*\n* var o = iterationOrder( [ 2, 1 ] );\n* // returns 1\n*\n* o = iterationOrder( [ -2, 1 ] );\n* // returns 0\n*\n* o = iterationOrder( [ -2, -1 ] );\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// MAIN //\n\n/**\n* Determines if an array is column-major contiguous.\n*\n* @private\n* @param {integer} order - **inferred** array order\n* @param {boolean} contiguous - boolean indicating is an array is contiguous\n* @returns {boolean} boolean indicating if an array is column-major contiguous\n*/\nfunction isColumnMajorContiguous( order, contiguous ) {\n\treturn contiguous && ( order === 2 || order === 3 );\n}\n\n\n// EXPORTS //\n\nmodule.exports = isColumnMajorContiguous;\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* Determines if an array is row-major contiguous.\n*\n* @private\n* @param {integer} order - **inferred** array order\n* @param {boolean} contiguous - boolean indicating is an array is contiguous\n* @returns {boolean} boolean indicating if an array is row-major contiguous\n*/\nfunction isRowMajorContiguous( order, contiguous ) {\n\treturn contiguous && ( order === 1 || order === 3 );\n}\n\n\n// EXPORTS //\n\nmodule.exports = isRowMajorContiguous;\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 minmaxViewBufferIndex = require( './../../../base/minmax-view-buffer-index' );\n\n\n// MAIN //\n\n/**\n* Determines if an array is contiguous.\n*\n* @private\n* @param {NonNegativeInteger} len - array length\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @param {integer} iterationOrder - iteration order\n* @returns {boolean} boolean indicating if an array is contiguous\n*/\nfunction isContiguous( len, shape, strides, offset, iterationOrder ) {\n\tvar buf;\n\n\t// If an array does not contain any elements, then no data to store, and, if the array is unordered, adjacent array elements are not guaranteed to be stored next to each other.\n\tif ( len === 0 || iterationOrder === 0 ) {\n\t\treturn false;\n\t}\n\t// Ensure that the array is compatible with a single memory segment:\n\tbuf = minmaxViewBufferIndex( shape, strides, offset );\n\treturn ( len === ( buf[1]-buf[0]+1 ) );\n}\n\n\n// EXPORTS //\n\nmodule.exports = isContiguous;\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* Copies ndarray flags.\n*\n* @private\n* @param {Object} flags - flags\n* @returns {Object} copy of input object\n*/\nfunction copyFlags( flags ) {\n\treturn {\n\t\t'ROW_MAJOR_CONTIGUOUS': flags.ROW_MAJOR_CONTIGUOUS,\n\t\t'COLUMN_MAJOR_CONTIGUOUS': flags.COLUMN_MAJOR_CONTIGUOUS,\n\t\t'READONLY': flags.READONLY\n\t};\n}\n\n\n// EXPORTS //\n\nmodule.exports = copyFlags;\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* Returns an array element located a specified linear view index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the input argument is ignored and, for clarity, should not be provided.\n*\n* @private\n* @param {integer} [idx] - linear view index\n* @returns {*} array element\n*/\nfunction iget( idx ) {\n\t/* eslint-disable no-invalid-this */\n\tvar strides;\n\tvar shape;\n\tvar ndims;\n\tvar ind;\n\tvar s;\n\tvar i;\n\n\tndims = this._ndims;\n\tif ( ndims === 0 ) {\n\t\tif ( this._accessors ) {\n\t\t\treturn this._buffer.get( this._offset );\n\t\t}\n\t\treturn this._buffer[ this._offset ];\n\t}\n\tif ( this._flags.ROW_MAJOR_CONTIGUOUS || this._flags.COLUMN_MAJOR_CONTIGUOUS ) { // eslint-disable-line max-len\n\t\t// Trivial case where we have all positive strides...\n\t\tif ( this._iterationOrder === 1 ) {\n\t\t\tif ( this._accessors ) {\n\t\t\t\treturn this._buffer.get( this._offset+idx );\n\t\t\t}\n\t\t\treturn this._buffer[ this._offset+idx ];\n\t\t}\n\t\t// Trivial case where we have all negative strides...\n\t\tif ( this._iterationOrder === -1 ) {\n\t\t\tif ( this._accessors ) {\n\t\t\t\treturn this._buffer.get( this.offset-idx );\n\t\t\t}\n\t\t\treturn this._buffer[ this._offset-idx ];\n\t\t}\n\t}\n\t// The approach which follows is to resolve a view index to its subscripts and then plug the subscripts into the standard formula for computing the linear index in the underlying data buffer...\n\tshape = this._shape;\n\tstrides = this._strides;\n\tind = this._offset;\n\tif ( this._order === 'column-major' ) {\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\ts = idx % shape[ i ];\n\t\t\tidx -= s;\n\t\t\tidx /= shape[ i ];\n\t\t\tind += s * strides[ i ];\n\t\t}\n\t\tif ( this._accessors ) {\n\t\t\treturn this._buffer.get( ind );\n\t\t}\n\t\treturn this._buffer[ ind ];\n\t}\n\t// Case: row-major\n\tfor ( i = ndims-1; i >= 0; i-- ) {\n\t\ts = idx % shape[ i ];\n\t\tidx -= s;\n\t\tidx /= shape[ i ];\n\t\tind += s * strides[ i ];\n\t}\n\tif ( this._accessors ) {\n\t\treturn this._buffer.get( ind );\n\t}\n\treturn this._buffer[ ind ];\n}\n\n\n// EXPORTS //\n\nmodule.exports = iget;\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* Sets an array element located a specified linear view index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the first, and only, argument should be the value to set.\n*\n* @private\n* @param {integer} [idx] - linear view index\n* @param {*} v - value to set\n* @returns {ndarray} ndarray instance\n*/\nfunction iset( idx, v ) {\n\t/* eslint-disable no-invalid-this */\n\tvar strides;\n\tvar shape;\n\tvar ndims;\n\tvar ind;\n\tvar s;\n\tvar i;\n\n\tndims = this._ndims;\n\tif ( ndims === 0 ) {\n\t\tif ( this._accessors ) {\n\t\t\tthis._buffer.set( idx, this._offset );\n\t\t} else {\n\t\t\tthis._buffer[ this._offset ] = idx;\n\t\t}\n\t\treturn this;\n\t}\n\tif ( this._flags.ROW_MAJOR_CONTIGUOUS || this._flags.COLUMN_MAJOR_CONTIGUOUS ) { // eslint-disable-line max-len\n\t\t// Trivial case where we have all positive strides...\n\t\tif ( this._iterationOrder === 1 ) {\n\t\t\tif ( this._accessors ) {\n\t\t\t\tthis._buffer.set( v, this._offset+idx );\n\t\t\t} else {\n\t\t\t\tthis._buffer[ this._offset+idx ] = v;\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\t// Trivial case where we have all negative strides...\n\t\tif ( this._iterationOrder === -1 ) {\n\t\t\tif ( this._accessors ) {\n\t\t\t\tthis._buffer.set( v, this._offset-idx );\n\t\t\t} else {\n\t\t\t\tthis._buffer[ this._offset-idx ] = v;\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t}\n\t// The approach which follows is to resolve a view index to its subscripts and then plug the subscripts into the standard formula for computing the linear index in the underlying data buffer...\n\tshape = this._shape;\n\tstrides = this._strides;\n\tind = this._offset;\n\tif ( this._order === 'column-major' ) {\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\ts = idx % shape[ i ];\n\t\t\tidx -= s;\n\t\t\tidx /= shape[ i ];\n\t\t\tind += s * strides[ i ];\n\t\t}\n\t\tif ( this._accessors ) {\n\t\t\tthis._buffer.set( v, ind );\n\t\t} else {\n\t\t\tthis._buffer[ ind ] = v;\n\t\t}\n\t\treturn this;\n\t}\n\t// Case: row-major\n\tfor ( i = ndims-1; i >= 0; i-- ) {\n\t\ts = idx % shape[ i ];\n\t\tidx -= s;\n\t\tidx /= shape[ i ];\n\t\tind += s * strides[ i ];\n\t}\n\tif ( this._accessors ) {\n\t\tthis._buffer.set( v, ind );\n\t} else {\n\t\tthis._buffer[ ind ] = v;\n\t}\n\treturn this;\n}\n\n\n// EXPORTS //\n\nmodule.exports = iset;\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* Sets an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @private\n* @param {...integer} [idx] - indices\n* @param {*} v - value to set\n* @returns {ndarray} ndarray instance\n*/\nfunction set() {\n\t/* eslint-disable no-invalid-this */\n\tvar idx;\n\tvar i;\n\n\tidx = this._offset;\n\tfor ( i = 0; i < arguments.length-1; i++ ) {\n\t\tidx += this._strides[ i ] * arguments[ i ];\n\t}\n\tif ( this._accessors ) {\n\t\tthis._buffer.set( arguments[ i ], idx );\n\t} else {\n\t\tthis._buffer[ idx ] = arguments[ i ];\n\t}\n\treturn this;\n}\n\n\n// EXPORTS //\n\nmodule.exports = set;\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* Returns an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @private\n* @param {...integer} idx - indices\n* @returns {*} array element\n*/\nfunction get() {\n\t/* eslint-disable no-invalid-this */\n\tvar idx;\n\tvar i;\n\n\tidx = this._offset;\n\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\tidx += this._strides[ i ] * arguments[ i ];\n\t}\n\tif ( this._accessors ) {\n\t\treturn this._buffer.get( idx );\n\t}\n\treturn this._buffer[ idx ];\n}\n\n\n// EXPORTS //\n\nmodule.exports = get;\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 real = require( '@stdlib/complex/real' );\nvar imag = require( '@stdlib/complex/imag' );\n\n\n// MAIN //\n\n/**\n* Serializes an ndarray as a JSON object.\n*\n* ## Notes\n*\n* - The method does **not** serialize data outside of the buffer region defined by the array configuration.\n*\n* @private\n* @returns {Object} JSON representation\n*/\nfunction toJSON() {\n\t/* eslint-disable no-invalid-this */\n\tvar out;\n\tvar len;\n\tvar v;\n\tvar i;\n\n\tlen = this._length;\n\n\t// Build an object containing all ndarray properties needed to revive a serialized ndarray...\n\tout = {};\n\tout.type = 'ndarray';\n\tout.dtype = this.dtype;\n\tout.flags = {\n\t\t'READONLY': this._flags.READONLY\n\t};\n\tout.order = this._order;\n\tout.shape = this._shape.slice();\n\tout.strides = this._strides.slice();\n\n\t// Flip the signs of negative strides:\n\tfor ( i = 0; i < len; i++ ) {\n\t\tif ( out.strides[ i ] < 0 ) {\n\t\t\tout.strides[ i ] *= -1;\n\t\t}\n\t}\n\t// Cast data to generic array...\n\tout.data = [];\n\tif ( out.dtype === 'complex64' || out.dtype === 'complex128' ) {\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tv = this.iget( i );\n\t\t\tout.data.push( real( v ), imag( v ) );\n\t\t}\n\t} else {\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tout.data.push( this.iget( i ) );\n\t\t}\n\t}\n\treturn out;\n\n\t/* eslint-enable no-invalid-this */\n}\n\n\n// EXPORTS //\n\nmodule.exports = toJSON;\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 replace = require( '@stdlib/string/replace' );\nvar real = require( '@stdlib/complex/real' );\nvar imag = require( '@stdlib/complex/imag' );\n\n\n// VARIABLES //\n\nvar CTORS = {\n\t'int8': 'new Int8Array( [ {{data}} ] )',\n\t'uint8': 'new Uint8Array( [ {{data}} ] )',\n\t'uint8c': 'new Uint8ClampedArray( [ {{data}} ] )',\n\t'int16': 'new Int16Array( [ {{data}} ] )',\n\t'uint16': 'new Uint16Array( [ {{data}} ] )',\n\t'int32': 'new Int32Array( [ {{data}} ] )',\n\t'uint32': 'new Uint32Array( [ {{data}} ] )',\n\t'float32': 'new Float32Array( [ {{data}} ] )',\n\t'float64': 'new Float64Array( [ {{data}} ] )',\n\t'generic': '[ {{data}} ]',\n\t'binary': 'new Buffer( [ {{data}} ] )',\n\t'complex64': 'new Complex64Array( [ {{data}} ] )',\n\t'complex128': 'new Complex128Array( [ {{data}} ] )'\n};\n\n\n// MAIN //\n\n/**\n* Serializes an ndarray as a string.\n*\n* ## Notes\n*\n* - The method does **not** serialize data outside of the buffer region defined by the array configuration.\n*\n* @private\n* @returns {string} string representation\n*/\nfunction toString() { // eslint-disable-line stdlib/no-redeclare\n\t/* eslint-disable no-invalid-this */\n\tvar buffer;\n\tvar ndims;\n\tvar ctor;\n\tvar str;\n\tvar dt;\n\tvar v;\n\tvar i;\n\n\tndims = this._shape.length;\n\tdt = this._dtype;\n\n\t// Function to invoke to create an ndarray:\n\tstr = 'ndarray( \\''+dt+'\\', ';\n\n\t// Data buffer parameter...\n\tbuffer = '';\n\tif ( this._length <= 100 ) {\n\t\tif ( dt === 'complex64' || dt === 'complex128' ) {\n\t\t\tfor ( i = 0; i < this._length; i++ ) {\n\t\t\t\tv = this.iget( i );\n\t\t\t\tbuffer += real( v ) + ', ' + imag( v );\n\t\t\t\tif ( i < this._length-1 ) {\n\t\t\t\t\tbuffer += ', ';\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i = 0; i < this._length; i++ ) {\n\t\t\t\tbuffer += this.iget( i );\n\t\t\t\tif ( i < this._length-1 ) {\n\t\t\t\t\tbuffer += ', ';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// First three values...\n\t\tif ( dt === 'complex64' || dt === 'complex128' ) {\n\t\t\tfor ( i = 0; i < 3; i++ ) {\n\t\t\t\tv = this.iget( i );\n\t\t\t\tbuffer += real( v ) + ', ' + imag( v );\n\t\t\t\tif ( i < 2 ) {\n\t\t\t\t\tbuffer += ', ';\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i = 0; i < 3; i++ ) {\n\t\t\t\tbuffer += this.iget( i );\n\t\t\t\tif ( i < 2 ) {\n\t\t\t\t\tbuffer += ', ';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tbuffer += ', ..., ';\n\n\t\t// Last three values...\n\t\tif ( dt === 'complex64' || dt === 'complex128' ) {\n\t\t\tfor ( i = 2; i >= 0; i-- ) {\n\t\t\t\tv = this.iget( this._length-1-i );\n\t\t\t\tbuffer += real( v ) + ', ' + imag( v );\n\t\t\t\tif ( i > 0 ) {\n\t\t\t\t\tbuffer += ', ';\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i = 2; i >= 0; i-- ) {\n\t\t\t\tbuffer += this.iget( this._length-1-i );\n\t\t\t\tif ( i > 0 ) {\n\t\t\t\t\tbuffer += ', ';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tctor = CTORS[ this.dtype ];\n\tstr += replace( ctor, '{{data}}', buffer );\n\tstr += ', ';\n\n\t// Array shape...\n\tif ( ndims === 0 ) {\n\t\tstr += '[]';\n\t} else {\n\t\tstr += '[ ' + this._shape.join( ', ' ) + ' ]';\n\t}\n\tstr += ', ';\n\n\t// Stride array...\n\tstr += '[ ';\n\tif ( ndims === 0 ) {\n\t\tstr += '0';\n\t} else {\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( this._strides[ i ] < 0 ) {\n\t\t\t\tstr += -this._strides[ i ];\n\t\t\t} else {\n\t\t\t\tstr += this._strides[ i ];\n\t\t\t}\n\t\t\tif ( i < ndims-1 ) {\n\t\t\t\tstr += ', ';\n\t\t\t}\n\t\t}\n\t}\n\tstr += ' ]';\n\tstr += ', ';\n\n\t// Buffer offset:\n\tstr += '0';\n\tstr += ', ';\n\n\t// Order:\n\tstr += '\\'' + this._order + '\\'';\n\n\t// Close the function call:\n\tstr += ' )';\n\treturn str;\n\n\t/* eslint-enable no-invalid-this */\n}\n\n\n// EXPORTS //\n\nmodule.exports = toString;\n", "[\n\t\"throw\",\n \"normalize\",\n\t\"clamp\",\n\t\"wrap\"\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 MODES = require( './modes.json' );\n\n\n// MAIN //\n\n/**\n* Returns a list of ndarray index modes.\n*\n* @returns {StringArray} list of ndarray index modes\n*\n* @example\n* var list = modes();\n* // returns [ 'throw', 'normalize', 'clamp', 'wrap' ]\n*/\nfunction modes() {\n\treturn MODES.slice();\n}\n\n\n// EXPORTS //\n\nmodule.exports = modes;\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 an object mapping supported index modes to integer values for purposes of C inter-operation.\n*\n* ## Notes\n*\n* - Downstream consumers of this mapping should **not** rely on specific integer values (e.g., `throw == 1`). Instead, the object should be used in an opaque manner.\n* - The main purpose of this function is JavaScript and C inter-operation of ndarray objects.\n*\n* @returns {Object} object mapping supported index modes to integer values\n*\n* @example\n* var table = enumerated();\n* // returns \n*/\nfunction enumerated() {\n\t// NOTE: the following should match the C `index_modes.h` enumeration!!!!\n\treturn {\n\t\t'throw': 1,\n\t\t'clamp': 2,\n\t\t'wrap': 3,\n\t\t'normalize': 4\n\t};\n}\n\n\n// EXPORTS //\n\nmodule.exports = enumerated;\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 ndarray index modes.\n*\n* @module @stdlib/ndarray/index-modes\n*\n* @example\n* var modes = require( '@stdlib/ndarray/index-modes' );\n*\n* var list = modes();\n* // returns [ 'throw', 'normalize', 'clamp', 'wrap' ]\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar modes = require( './main.js' );\nvar enumeration = require( './enum.js' );\n\n\n// MAIN //\n\nsetReadOnly( modes, 'enum', enumeration );\n\n\n// EXPORTS //\n\nmodule.exports = modes;\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 IS_LITTLE_ENDIAN = require( '@stdlib/assert/is-little-endian' );\nvar ArrayBuffer = require( '@stdlib/array/buffer' );\nvar DataView = require( '@stdlib/array/dataview' );\nvar BigInt = require( '@stdlib/bigint/ctor' );\nvar dtypes = require( './../../../dtypes' ).enum;\nvar orders = require( './../../../orders' ).enum;\nvar modes = require( './../../../index-modes' ).enum;\n\n\n// VARIABLES //\n\nvar DTYPES = dtypes();\nvar ORDERS = orders();\nvar MODES = modes();\n\n\n// FUNCTIONS //\n\n/**\n* Serializes ndarray meta data to a `DataView`.\n*\n* ## Notes\n*\n* - This function takes into account ndarray-like objects which may support index modes.\n*\n* - This function defaults to returning cached serialized meta data. To force serialization, set the private `__meta_dataview__` property to `null`.\n*\n* - Serialization is performed according to host byte order (endianness).\n*\n* - Meta data format:\n*\n* ```text\n* | endianness (1 byte) | (2 bytes) | (8 bytes) | (ndims*8 bytes) | (ndims*8 bytes) | (8 bytes) | (1 byte) | (1 byte) | (8 bytes) | (nsubmodes*1 bytes) | (4 bytes) |\n* ```\n*\n* which translates to the following `ArrayBuffer` layout:\n*\n* ```text\n* ArrayBuffer[\n* [int8],\n* [int16],\n* [int64],\n* [ndims*int64],\n* [ndims*int64],\n* [int64],\n* [int8],\n* [int8],\n* [int64],\n* [nsubmodes*int8],\n* [int32]\n* ]\n* ```\n*\n* where `strides` and `offset` are in units of bytes.\n*\n* - If the endianness is `1`, the byte order is little endian. If the endianness is `0`, the byte order is big endian.\n*\n* - Buffer length:\n*\n* ```text\n* 1 + 2 + 8 + (ndims*8) + (ndims*8) + 8 + 1 + 1 + 8 + (nsubmodes*1) + 4 = 33 + (ndims*16) + nsubmodes\n* ```\n*\n* For example, consider a three-dimensional ndarray with one subscript index mode (submode):\n*\n* ```text\n* 33 + (3*16) + 1 = 82 bytes\n* ```\n*\n* - Views:\n*\n* - endianness: `Int8Array( buf, 0, 1 )`\n* - dtype: `Int16Array( buf, 1, 1 )`\n* - ndims: `Int64Array( buf, 3, 1 )`\n* - shape: `Int64Array( buf, 11, ndims )`\n* - strides: `Int64Array( buf, 11+(ndims*8), ndims )`\n* - offset: `Int64Array( buf, 11+(ndims*16), 1 )`\n* - order: `Int8Array( buf, 19+(ndims*16), 1 )`\n* - mode: `Int8Array( buf, 20+(ndims*16), 1 )`\n* - nsubmodes: `Int64Array( buf, 21+(ndims*16), 1 )`\n* - submodes: `Int8Array( buf, 29+(ndims*16), nsubmodes )`\n* - flags: `Int32Array( buf, 29+(ndims*16)+nsubmodes, 1 )`\n*\n* @private\n* @returns {DataView} serialized meta data\n*/\nfunction meta2dataview() {\n\t/* eslint-disable no-invalid-this */\n\tvar nbytes;\n\tvar flgs;\n\tvar len;\n\tvar dt;\n\tvar sh;\n\tvar st;\n\tvar sm;\n\tvar v;\n\tvar m;\n\tvar o;\n\tvar s;\n\tvar N;\n\tvar M;\n\tvar i;\n\n\tm = this._mode || 'throw';\n\tsm = this._submode || [ m ];\n\tN = this._ndims;\n\tM = sm.length;\n\n\t// Compute the amount of memory we need to allocate for storing meta data:\n\tlen = 33 + (N*16) + M;\n\n\t// Check if we've already serialized ndarray meta data and can reuse an already allocated array buffer...\n\tv = this.__meta_dataview__;\n\tif ( v && v.byteLength === len ) { // Note: the byte length check is only a bare minimum sanity check, as cached contents may still be \"stale\" (e.g., shape and/or strides may have changed)\n\t\treturn v;\n\t}\n\t// Allocate raw memory and create a view for interfacing with the allocated memory:\n\tv = new DataView( new ArrayBuffer( len ) );\n\n\t// Retrieve ndarray meta data:\n\tsh = this._shape;\n\tst = this._strides;\n\tdt = this._dtype;\n\tnbytes = this._bytesPerElement;\n\n\t// Endianness: (byteoffset: 0; bytelength: 1)\n\to = 0;\n\tv.setInt8( o, ( IS_LITTLE_ENDIAN ) ? 1 : 0 );\n\n\t// Data type: (byteoffset: 1; bytelength: 2)\n\to += 1;\n\tv.setInt16( o, DTYPES[ dt ], IS_LITTLE_ENDIAN );\n\n\t// Number of dimensions: (byteoffset: 3; bytelength: 8)\n\to += 2;\n\tv.setBigInt64( o, BigInt( N ), IS_LITTLE_ENDIAN );\n\n\t// Shape and strides: (byteoffset: 11 and 11+(ndims*8), respectively; bytelength: ndims*8 for both shape and strides, and, thus, ndims*16 total)\n\ts = N * 8; // stride length between a dimension (shape[i]) and its associated stride\n\to += 8;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tv.setBigInt64( o, BigInt( sh[i] ), IS_LITTLE_ENDIAN );\n\t\tv.setBigInt64( o+s, BigInt( st[i]*nbytes ), IS_LITTLE_ENDIAN );\n\t\to += 8;\n\t}\n\t// Offset: (byteoffset: 11+(ndims*16); bytelength: 8)\n\to += s;\n\tv.setBigInt64( o, BigInt( this._offset*nbytes ), IS_LITTLE_ENDIAN );\n\n\t// Order: (byteoffset: 19+(ndims*16); bytelength: 1)\n\to += 8;\n\tv.setInt8( o, ORDERS[ this._order ] );\n\n\t// Mode: (byteoffset: 20+(ndims*16); bytelength: 1)\n\to += 1;\n\tv.setInt8( o, MODES[ m ] );\n\n\t// Number of submodes: (byteoffset: 21+(ndims*16); bytelength: 8)\n\to += 1;\n\tv.setBigInt64( o, BigInt( M ), IS_LITTLE_ENDIAN );\n\n\t// Submodes: (byteoffset: 29+(ndims*16); bytelength: nsubmodes*1)\n\to += 8;\n\tfor ( i = 0; i < M; i++ ) {\n\t\tv.setInt8( o, MODES[ sm[i] ] );\n\t\to += 1;\n\t}\n\t// Flags: (byteoffset: 29+(ndims*16)+nsubmodes; bytelength: 4)\n\tflgs = 0|0;\n\tflgs |= ( this._flags.READONLY ) ? 4 : 0; // 00000000 00000000 00000000 00000100\n\tv.setInt32( o, flgs, IS_LITTLE_ENDIAN );\n\n\t// Cache the serialized meta data:\n\tthis.__meta_dataview__ = v;\n\n\treturn v;\n\n\t/* eslint-enable no-invalid-this */\n}\n\n\n// EXPORTS //\n\nmodule.exports = meta2dataview;\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 IS_LITTLE_ENDIAN = require( '@stdlib/assert/is-little-endian' );\nvar ArrayBuffer = require( '@stdlib/array/buffer' );\nvar DataView = require( '@stdlib/array/dataview' );\nvar Uint8Array = require( '@stdlib/array/uint8' );\nvar dtypes = require( './../../../dtypes' ).enum;\nvar orders = require( './../../../orders' ).enum;\nvar modes = require( './../../../index-modes' ).enum;\nvar float64ToInt64Bytes = require( '@stdlib/number/float64/base/to-int64-bytes' ).assign;\n\n\n// VARIABLES //\n\nvar DTYPES = dtypes();\nvar ORDERS = orders();\nvar MODES = modes();\n\n\n// FUNCTIONS //\n\n/**\n* Serializes ndarray meta data to a `DataView`.\n*\n* ## Notes\n*\n* - This function takes into account ndarray-like objects which may support index modes.\n*\n* - This function defaults to returning cached serialized meta data. To force serialization, set the private `__meta_dataview__` property to `null`.\n*\n* - Serialization is performed according to host byte order (endianness).\n*\n* - Meta data format:\n*\n* ```text\n* | endianness (1 byte) | (2 bytes) | (8 bytes) | (ndims*8 bytes) | (ndims*8 bytes) | (8 bytes) | (1 byte) | (1 byte) | (8 bytes) | (nsubmodes*1 bytes) | (4 bytes) |\n* ```\n*\n* which translates to the following `ArrayBuffer` layout:\n*\n* ```text\n* ArrayBuffer[\n* [int8],\n* [int16],\n* [int64],\n* [ndims*int64],\n* [ndims*int64],\n* [int64],\n* [int8],\n* [int8],\n* [int64],\n* [nsubmodes*int8],\n* [int32]\n* ]\n* ```\n*\n* where `strides` and `offset` are in units of bytes.\n*\n* - If the endianness is `1`, the byte order is little endian. If the endianness is `0`, the byte order is big endian.\n*\n* - Buffer length:\n*\n* ```text\n* 1 + 2 + 8 + (ndims*8) + (ndims*8) + 8 + 1 + 1 + 8 + (nsubmodes*1) + 4 = 33 + (ndims*16) + nsubmodes\n* ```\n*\n* For example, consider a three-dimensional ndarray with one subscript index mode (submode):\n*\n* ```text\n* 33 + (3*16) + 1 = 82 bytes\n* ```\n*\n* - Views:\n*\n* - endianness: `Int8Array( buf, 0, 1 )`\n* - dtype: `Int16Array( buf, 1, 1 )`\n* - ndims: `Int64Array( buf, 3, 1 )`\n* - shape: `Int64Array( buf, 11, ndims )`\n* - strides: `Int64Array( buf, 11+(ndims*8), ndims )`\n* - offset: `Int64Array( buf, 11+(ndims*16), 1 )`\n* - order: `Int8Array( buf, 19+(ndims*16), 1 )`\n* - mode: `Int8Array( buf, 20+(ndims*16), 1 )`\n* - nsubmodes: `Int64Array( buf, 21+(ndims*16), 1 )`\n* - submodes: `Int8Array( buf, 29+(ndims*16), nsubmodes )`\n* - flags: `Int32Array( buf, 29+(ndims*16)+nsubmodes, 1 )`\n*\n* @private\n* @returns {DataView} serialized meta data\n*/\nfunction meta2dataview() {\n\t/* eslint-disable no-invalid-this */\n\tvar nbytes;\n\tvar bytes;\n\tvar flgs;\n\tvar len;\n\tvar dt;\n\tvar sh;\n\tvar st;\n\tvar sm;\n\tvar v;\n\tvar m;\n\tvar o;\n\tvar s;\n\tvar N;\n\tvar M;\n\tvar i;\n\n\tm = this._mode || 'throw';\n\tsm = this._submode || [ m ];\n\tN = this._ndims;\n\tM = sm.length;\n\n\t// Compute the amount of memory we need to allocate for storing meta data:\n\tlen = 33 + (N*16) + M;\n\n\t// Check if we've already serialized ndarray meta data and can reuse an already allocated array buffer...\n\tv = this.__meta_dataview__;\n\tif ( v && v.byteLength === len ) { // Note: the byte length check is only a bare minimum sanity check, as cached contents may still be \"stale\" (e.g., shape and/or strides may have changed)\n\t\treturn v;\n\t}\n\t// Allocate raw memory and create views for interfacing with the allocated memory:\n\tv = new DataView( new ArrayBuffer( len ) );\n\tbytes = new Uint8Array( v.buffer );\n\n\t// Retrieve ndarray meta data:\n\tsh = this._shape;\n\tst = this._strides;\n\tdt = this._dtype;\n\tnbytes = this._bytesPerElement;\n\n\t// Endianness: (byteoffset: 0; bytelength: 1)\n\to = 0;\n\tv.setInt8( o, ( IS_LITTLE_ENDIAN ) ? 1 : 0 );\n\n\t// Data type: (byteoffset: 1; bytelength: 2)\n\to += 1;\n\tv.setInt16( o, DTYPES[ dt ], IS_LITTLE_ENDIAN );\n\n\t// Number of dimensions: (byteoffset: 3; bytelength: 8)\n\to += 2;\n\tfloat64ToInt64Bytes( N, bytes, 1, o );\n\n\t// Shape and strides: (byteoffset: 11 and 11+(ndims*8), respectively; bytelength: ndims*8 for both shape and strides, and, thus, ndims*16 total)\n\ts = N * 8; // stride length between a dimension (shape[i]) and its associated stride\n\to += 8;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tfloat64ToInt64Bytes( sh[i], bytes, 1, o );\n\t\tfloat64ToInt64Bytes( st[i]*nbytes, bytes, 1, o+s );\n\t\to += 8;\n\t}\n\t// Offset: (byteoffset: 11+(ndims*16); bytelength: 8)\n\to += s;\n\tfloat64ToInt64Bytes( this._offset*nbytes, bytes, 1, o );\n\n\t// Order: (byteoffset: 19+(ndims*16); bytelength: 1)\n\to += 8;\n\tv.setInt8( o, ORDERS[ this._order ] );\n\n\t// Mode: (byteoffset: 20+(ndims*16); bytelength: 1)\n\to += 1;\n\tv.setInt8( o, MODES[ m ] );\n\n\t// Number of submodes: (byteoffset: 21+(ndims*16); bytelength: 8)\n\to += 1;\n\tfloat64ToInt64Bytes( M, bytes, 1, o );\n\n\t// Submodes: (byteoffset: 29+(ndims*16); bytelength: nsubmodes*1)\n\to += 8;\n\tfor ( i = 0; i < M; i++ ) {\n\t\tv.setInt8( o, MODES[ sm[i] ] );\n\t\to += 1;\n\t}\n\t// Flags: (byteoffset: 29+(ndims*16)+nsubmodes; bytelength: 4)\n\tflgs = 0|0;\n\tflgs |= ( this._flags.READONLY ) ? 4 : 0; // 00000000 00000000 00000000 00000100\n\tv.setInt32( o, flgs, IS_LITTLE_ENDIAN );\n\n\t// Cache the serialized meta data:\n\tthis.__meta_dataview__ = v;\n\n\treturn v;\n\n\t/* eslint-enable no-invalid-this */\n}\n\n\n// EXPORTS //\n\nmodule.exports = meta2dataview;\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/* eslint-disable no-restricted-syntax, no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nvar hasBigIntSupport = require( '@stdlib/assert/has-bigint-support' );\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar setReadOnlyAccessor = require( '@stdlib/utils/define-nonenumerable-read-only-accessor' );\nvar bytesPerElement = require( './../../../base/bytes-per-element' );\nvar iterationOrder = require( './../../../base/iteration-order' );\nvar strides2order = require( './../../../base/strides2order' );\nvar Boolean = require( '@stdlib/boolean/ctor' );\nvar isColumnMajorContiguous = require( './is_column_major_contiguous.js' );\nvar isRowMajorContiguous = require( './is_row_major_contiguous.js' );\nvar isContiguous = require( './is_contiguous.js' );\nvar copyFlags = require( './copy_flags.js' );\nvar igetValue = require( './iget.js' );\nvar isetValue = require( './iset.js' );\nvar setValue = require( './set.js' );\nvar getValue = require( './get.js' );\nvar toJSON = require( './tojson.js' );\nvar toString = require( './tostring.js' ); // eslint-disable-line stdlib/no-redeclare\nvar meta2dataview = require( './meta2dataview.js' );\nvar meta2dataviewPolyfill = require( './meta2dataview.polyfill.js' );\n\n\n// MAIN //\n\n/**\n* ndarray constructor.\n*\n* ## Notes\n*\n* - To create a zero-dimensional array,\n*\n* ```javascript\n* var buffer = [ 1 ];\n* var shape = [];\n* var strides = [ 0 ];\n* var offset = 0;\n*\n* var out = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* ```\n*\n* @constructor\n* @param {string} dtype - data type\n* @param {(ArrayLikeObject|TypedArray|Buffer)} buffer - data buffer\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - array strides\n* @param {NonNegativeInteger} offset - index offset\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @returns {ndarray} ndarray instance\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var out = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*/\nfunction ndarray( dtype, buffer, shape, strides, offset, order ) {\n\tvar contiguous;\n\tvar nbytes;\n\tvar ord;\n\tvar len;\n\tvar i;\n\tif ( !(this instanceof ndarray) ) {\n\t\treturn new ndarray( dtype, buffer, shape, strides, offset, order );\n\t}\n\t// Compute the number of elements...\n\tlen = 1;\n\tfor ( i = 0; i < shape.length; i++ ) {\n\t\tlen *= shape[ i ];\n\t}\n\t// Compute the number of bytes...\n\tif ( buffer.BYTES_PER_ELEMENT ) {\n\t\tnbytes = buffer.BYTES_PER_ELEMENT * len;\n\t} else {\n\t\tnbytes = null;\n\t}\n\t// Set private properties...\n\tthis._byteLength = nbytes;\n\tthis._bytesPerElement = bytesPerElement( dtype );\n\tthis._buffer = buffer;\n\tthis._dtype = dtype;\n\tthis._length = len;\n\tthis._ndims = shape.length;\n\tthis._offset = offset;\n\tthis._order = order;\n\tthis._shape = shape;\n\tthis._strides = strides;\n\tthis._accessors = Boolean( buffer.get && buffer.set );\n\n\tthis._iterationOrder = iterationOrder( strides );\n\n\t// Determine if the array can be stored contiguously:\n\tcontiguous = isContiguous( len, shape, strides, offset, this._iterationOrder ); // eslint-disable-line max-len\n\n\t// Infer the array \"order\" from the stride array (this is supplementary to the `order` parameter):\n\tord = strides2order( strides );\n\n\tthis._flags = {\n\t\t'ROW_MAJOR_CONTIGUOUS': isRowMajorContiguous( ord, contiguous ),\n\t\t'COLUMN_MAJOR_CONTIGUOUS': isColumnMajorContiguous( ord, contiguous ),\n\t\t'READONLY': false\n\t};\n\n\t// Initialize a property for caching serialized meta data:\n\tthis.__meta_dataview__ = null;\n\n\treturn this;\n}\n\n/**\n* Constructor name.\n*\n* @name name\n* @memberof ndarray\n* @type {string}\n* @default 'ndarray'\n*\n* @example\n* var str = ndarray.name;\n* // returns 'ndarray'\n*/\nsetReadOnly( ndarray, 'name', 'ndarray' );\n\n/**\n* Size (in bytes) of the array (if known).\n*\n* @name byteLength\n* @memberof ndarray.prototype\n* @type {(NonNegativeInteger|null)}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var buffer = new Float64Array( [ 1, 2, 3, 4, 5, 6 ] );\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'float64', buffer, shape, strides, offset, 'row-major' );\n*\n* var byteLength = x.byteLength;\n* // returns 48\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'byteLength', function get() {\n\treturn this._byteLength;\n});\n\n/**\n* Size (in bytes) of each array element (if known).\n*\n* @name BYTES_PER_ELEMENT\n* @memberof ndarray.prototype\n* @type {(PositiveInteger|null)}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var buffer = new Float64Array( [ 1, 2, 3, 4, 5, 6 ] );\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'float64', buffer, shape, strides, offset, 'row-major' );\n*\n* var nbytes = x.BYTES_PER_ELEMENT;\n* // returns 8\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'BYTES_PER_ELEMENT', function get() {\n\treturn this._bytesPerElement;\n});\n\n/**\n* Pointer to the underlying data buffer.\n*\n* @name data\n* @memberof ndarray.prototype\n* @type {(Array|TypedArray|Buffer)}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var data = x.data;\n* // returns [ 1, 2, 3, 4, 5, 6 ]\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'data', function get() {\n\treturn this._buffer;\n});\n\n/**\n* Underlying data type.\n*\n* @name dtype\n* @memberof ndarray.prototype\n* @type {string}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var dtype = x.dtype;\n* // returns 'generic'\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'dtype', function get() {\n\treturn this._dtype;\n});\n\n/**\n* Meta information, such as information concerning the memory layout of the array.\n*\n* @name flags\n* @memberof ndarray.prototype\n* @type {Object}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var flgs = x.flags;\n* // returns \n*/\nsetReadOnlyAccessor( ndarray.prototype, 'flags', function get() {\n\treturn copyFlags( this._flags );\n});\n\n/**\n* Length of the array.\n*\n* @name length\n* @memberof ndarray.prototype\n* @type {NonNegativeInteger}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var len = x.length;\n* // returns 6\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'length', function get() {\n\treturn this._length;\n});\n\n/**\n* Number of dimensions.\n*\n* @name ndims\n* @memberof ndarray.prototype\n* @type {PositiveInteger}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var ndims = x.ndims;\n* // returns 2\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'ndims', function get() {\n\treturn this._ndims;\n});\n\n/**\n* Index offset which specifies the buffer index at which to start iterating over array elements.\n*\n* @name offset\n* @memberof ndarray.prototype\n* @type {NonNegativeInteger}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var o = x.offset;\n* // returns 0\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'offset', function get() {\n\treturn this._offset;\n});\n\n/**\n* Array order.\n*\n* ## Notes\n*\n* - The array order is either row-major (C-style) or column-major (Fortran-style).\n*\n* @name order\n* @memberof ndarray.prototype\n* @type {string}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var order = x.order;\n* // returns 'row-major'\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'order', function get() {\n\treturn this._order;\n});\n\n/**\n* Shape of the array.\n*\n* @name shape\n* @memberof ndarray.prototype\n* @type {NonNegativeIntegerArray}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var s = x.shape;\n* // returns [ 3, 2 ]\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'shape', function get() {\n\treturn this._shape.slice();\n});\n\n/**\n* Index strides which specify how to access data along corresponding array dimensions.\n*\n* @name strides\n* @memberof ndarray.prototype\n* @type {IntegerArray}\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var s = x.strides;\n* // returns [ 2, 1 ]\n*/\nsetReadOnlyAccessor( ndarray.prototype, 'strides', function get() {\n\treturn this._strides.slice();\n});\n\n/**\n* Returns an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @name get\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {...integer} [idx] - indices\n* @returns {*} array element\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.get( 1, 1 );\n* // returns 4\n*/\nsetReadOnly( ndarray.prototype, 'get', getValue );\n\n/**\n* Returns an array element located at a specified linear index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the input argument is ignored and, for clarity, should not be provided.\n*\n* @name iget\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {integer} [idx] - linear index\n* @returns {*} array element\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.iget( 3 );\n* // returns 4\n*/\nsetReadOnly( ndarray.prototype, 'iget', igetValue );\n\n/**\n* Sets an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @name set\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {...integer} [idx] - indices\n* @param {*} v - value to set\n* @returns {ndarray} ndarray instance\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.get( 1, 1 );\n* // returns 4\n*\n* x.set( 1, 1, 10 );\n*\n* var b = x.data;\n* // returns [ 1, 2, 3, 10, 5, 6 ]\n*\n* v = x.get( 1, 1 );\n* // returns 10\n*/\nsetReadOnly( ndarray.prototype, 'set', setValue );\n\n/**\n* Sets an array element located at a specified linear index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the first, and only, argument should be the value to set.\n*\n* @name iset\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {integer} [idx] - linear index\n* @param {*} v - value to set\n* @returns {ndarray} ndarray instance\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.iget( 3 );\n* // returns 4\n*\n* x.iset( 3, 10 );\n*\n* var b = x.data;\n* // returns [ 1, 2, 3, 10, 5, 6 ]\n*\n* v = x.iget( 3 );\n* // returns 10\n*/\nsetReadOnly( ndarray.prototype, 'iset', isetValue );\n\n/**\n* Serializes an ndarray as a string.\n*\n* ## Notes\n*\n* - The method does **not** serialize data outside of the buffer region defined by the array configuration.\n*\n* @name toString\n* @memberof ndarray.prototype\n* @type {Function}\n* @returns {string} serialized ndarray\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6, 7, 8 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 2;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var str = x.toString();\n* // returns \"ndarray( 'generic', [ 3, 4, 5, 6, 7, 8 ], [ 3, 2 ], [ 2, 1 ], 0, 'row-major' )\"\n*/\nsetReadOnly( ndarray.prototype, 'toString', toString );\n\n/**\n* Serializes an ndarray as a JSON object.\n*\n* ## Notes\n*\n* - `JSON.stringify()` implicitly calls this method when stringifying an `ndarray` instance.\n* - The method does **not** serialize data outside of the buffer region defined by the array configuration.\n*\n* @name toJSON\n* @memberof ndarray.prototype\n* @type {Function}\n* @returns {Object} serialized ndarray\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6, 7, 8 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 2;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var o = x.toJSON();\n* // e.g., returns { 'type': 'ndarray', 'dtype': 'generic', 'flags': {...}, 'offset': 0, 'order': 'row-major', 'shape': [ 3, 2 ], 'strides': [ 2, 1 ], 'data': [ 3, 4, 5, 6, 7, 8 ] }\n*/\nsetReadOnly( ndarray.prototype, 'toJSON', toJSON );\n\n/**\n* Serializes ndarray meta data to a `DataView`.\n*\n* ## Notes\n*\n* - Meta data format:\n*\n* ```text\n* | (1 byte) | (2 bytes) | (8 bytes) | (ndims*8 bytes) | (ndims*8 bytes) | (8 bytes) | (1 byte) | (1 byte) | (8 bytes) | (nsubmodes*1 bytes) | (4 bytes) |\n* ```\n*\n* where `strides` and `offset` are in units of bytes.\n*\n* - If the endianness is `1`, the byte order is little endian. If the endianness is `0`, the byte order is big endian.\n*\n* - Serialization is performed according to host byte order (endianness).\n*\n* - Consumers of this method should treat the returned `DataView` as **immutable**. Otherwise, mutation can invalidate meta data and potentially affect other consumers.\n*\n* @private\n* @name __array_meta_dataview__\n* @memberof ndarray.prototype\n* @type {Function}\n* @returns {DataView} serialized meta data\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6, 7, 8 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 2;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var dv = x.__array_meta_dataview__();\n* // returns \n*/\nsetReadOnly( ndarray.prototype, '__array_meta_dataview__', ( hasBigIntSupport() ) ? meta2dataview : meta2dataviewPolyfill );\n\n\n// EXPORTS //\n\nmodule.exports = ndarray;\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* Multidimensional array constructor.\n*\n* @module @stdlib/ndarray/base/ctor\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/base/ctor' );\n*\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var out = ndarray( 'float64', buffer, shape, strides, offset, 'row-major' );\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 ndarray settings.\n*\n* @returns {Object} defaults\n*\n* @example\n* var o = defaults();\n* // returns {...}\n*/\nfunction defaults() {\n\treturn {\n\t\t// Data types:\n\t\t'dtypes': {\n\t\t\t'default': 'float64',\n\t\t\t'numeric': 'float64',\n\t\t\t'real': 'float64',\n\t\t\t'floating_point': 'float64',\n\t\t\t'real_floating_point': 'float64',\n\t\t\t'complex_floating_point': 'complex128',\n\t\t\t'integer': 'int32',\n\t\t\t'signed_integer': 'int32',\n\t\t\t'unsigned_integer': 'uint32'\n\t\t},\n\n\t\t// Memory layout:\n\t\t'order': 'row-major',\n\n\t\t// Casting mode:\n\t\t'casting': 'safe',\n\n\t\t// Index mode:\n\t\t'index_mode': 'throw'\n\t};\n}\n\n\n// EXPORTS //\n\nmodule.exports = defaults;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 defaults = require( './main.js' );\n\n\n// VARIABLES //\n\nvar DEFAULTS = defaults();\nvar HASH = {\n\t'dtypes.default': DEFAULTS.dtypes.default,\n\t'dtypes.numeric': DEFAULTS.dtypes.numeric,\n\t'dtypes.real': DEFAULTS.dtypes.real,\n\t'dtypes.floating_point': DEFAULTS.dtypes.floating_point,\n\t'dtypes.real_floating_point': DEFAULTS.dtypes.real_floating_point,\n\t'dtypes.complex_floating_point': DEFAULTS.dtypes.complex_floating_point,\n\t'dtypes.integer': DEFAULTS.dtypes.integer,\n\t'dtypes.signed_integer': DEFAULTS.dtypes.signed_integer,\n\t'dtypes.unsigned_integer': DEFAULTS.dtypes.unsigned_integer,\n\t'order': DEFAULTS.order,\n\t'casting': DEFAULTS.casting,\n\t'index_mode': DEFAULTS.index_mode\n};\n\n\n// MAIN //\n\n/**\n* Returns a default ndarray setting.\n*\n* @param {string} name - setting name\n* @returns {*} default setting or null\n*\n* @example\n* var v = get( 'dtypes.default' );\n* // returns \n*/\nfunction get( name ) {\n\tvar v = HASH[ name ];\n\treturn ( v === void 0 ) ? null : v;\n}\n\n\n// EXPORTS //\n\nmodule.exports = get;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 default ndarray settings.\n*\n* @module @stdlib/ndarray/defaults\n*\n* @example\n* var defaults = require( '@stdlib/ndarray/defaults' );\n*\n* var o = defaults();\n* // returns {...}\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar get = require( './get.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'get', get );\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/**\n* Restricts an index to the interval `[0,max]`.\n*\n* @param {integer} idx - index\n* @param {NonNegativeInteger} max - maximum index\n* @returns {NonNegativeInteger} index\n*\n* @example\n* var idx = clampIndex( -1, 10 );\n* // returns 0\n*\n* idx = clampIndex( 15, 10 );\n* // returns 10\n*\n* idx = clampIndex( 5, 10 );\n* // returns 5\n*/\nfunction clampIndex( idx, max ) {\n\tif ( idx < 0 ) {\n\t\treturn 0;\n\t}\n\tif ( idx > max ) {\n\t\treturn max;\n\t}\n\treturn idx;\n}\n\n\n// EXPORTS //\n\nmodule.exports = clampIndex;\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* Restrict an index to the interval `[0,max]`.\n*\n* @module @stdlib/ndarray/base/clamp-index\n*\n* @example\n* var clampIndex = require( '@stdlib/ndarray/base/clamp-index' );\n*\n* var idx = clampIndex( -1, 10 );\n* // returns 0\n*\n* idx = clampIndex( 15, 10 );\n* // returns 10\n*\n* idx = clampIndex( 5, 10 );\n* // returns 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) 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* Wraps an index on the interval `[0,max]`.\n*\n* @param {integer} idx - index\n* @param {NonNegativeInteger} max - maximum index\n* @returns {NonNegativeInteger} index\n*\n* @example\n* var idx = wrapIndex( -1, 10 );\n* // returns 10\n*\n* idx = wrapIndex( 13, 10 );\n* // returns 2\n*\n* idx = wrapIndex( 6, 10 );\n* // returns 6\n*/\nfunction wrapIndex( idx, max ) {\n\tvar mp1 = max + 1;\n\tif ( idx < 0 ) {\n\t\tidx += mp1; // slight optimization to avoid modulo arithmetic when |idx| <= max+1\n\t\tif ( idx < 0 ) {\n\t\t\tidx %= mp1;\n\t\t\tif ( idx !== 0 ) {\n\t\t\t\tidx += mp1;\n\t\t\t}\n\t\t}\n\t\treturn idx;\n\t}\n\tif ( idx > max ) {\n\t\tidx -= mp1; // slight optimization to avoid modulo arithmetic when max+1 < idx <= 2*(max+1)\n\t\tif ( idx > max ) {\n\t\t\tidx %= mp1;\n\t\t}\n\t\treturn idx;\n\t}\n\treturn idx;\n}\n\n\n// EXPORTS //\n\nmodule.exports = wrapIndex;\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* Wrap an index on the interval `[0,max]`.\n*\n* @module @stdlib/ndarray/base/wrap-index\n*\n* @example\n* var wrapIndex = require( '@stdlib/ndarray/base/wrap-index' );\n*\n* var idx = wrapIndex( -1, 10 );\n* // returns 10\n*\n* idx = wrapIndex( 14, 10 );\n* // returns 3\n*\n* idx = wrapIndex( 6, 10 );\n* // returns 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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Normalizes an index to the interval `[0,max]`.\n*\n* @param {integer} idx - index\n* @param {NonNegativeInteger} max - maximum index\n* @returns {integer} index\n*\n* @example\n* var idx = normalizeIndex( -2, 10 );\n* // returns 9\n*\n* idx = normalizeIndex( 15, 10 );\n* // returns -1\n*\n* idx = normalizeIndex( 5, 10 );\n* // returns 5\n*/\nfunction normalizeIndex( idx, max ) {\n\tif ( idx < 0 ) {\n\t\tidx += max + 1;\n\t\tif ( idx < 0 ) {\n\t\t\treturn -1;\n\t\t}\n\t\treturn idx;\n\t}\n\tif ( idx > max ) {\n\t\treturn -1;\n\t}\n\treturn idx;\n}\n\n\n// EXPORTS //\n\nmodule.exports = normalizeIndex;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Normalize an index to the interval `[0,max]`.\n*\n* @module @stdlib/ndarray/base/normalize-index\n*\n* @example\n* var normalizeIndex = require( '@stdlib/ndarray/base/normalize-index' );\n*\n* var idx = normalizeIndex( -2, 10 );\n* // returns 9\n*\n* idx = normalizeIndex( 15, 10 );\n* // returns -1\n*\n* idx = normalizeIndex( 5, 10 );\n* // returns 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) 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 contains = require( '@stdlib/array/base/assert/contains' ).factory;\nvar modes = require( './../../../../index-modes' );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray index mode.\n*\n* @name isIndexMode\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray index mode\n*\n* @example\n* var bool = isIndexMode( 'wrap' );\n* // returns true\n*\n* bool = isIndexMode( 'clamp' );\n* // returns true\n*\n* bool = isIndexMode( 'throw' );\n* // returns true\n*\n* bool = isIndexMode( 'foo' );\n* // returns false\n*/\nvar isIndexMode = contains( modes() );\n\n\n// EXPORTS //\n\nmodule.exports = isIndexMode;\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* Test whether an input value is a supported ndarray index mode.\n*\n* @module @stdlib/ndarray/base/assert/is-index-mode\n*\n* @example\n* var isIndexMode = require( '@stdlib/ndarray/base/assert/is-index-mode' );\n*\n* var bool = isIndexMode( 'wrap' );\n* // returns true\n*\n* bool = isIndexMode( 'clamp' );\n* // returns true\n*\n* bool = isIndexMode( 'throw' );\n* // returns true\n*\n* bool = isIndexMode( 'foo' );\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 clampIndex = require( './../../../base/clamp-index' );\nvar wrapIndex = require( './../../../base/wrap-index' );\nvar normalize = require( './../../../base/normalize-index' );\nvar isIndexMode = require( './../../../base/assert/is-index-mode' );\nvar format = require( '@stdlib/string/format' );\n\n\n// VARIABLES //\n\nvar TABLE = {\n\t'wrap': wrapIndex,\n\t'clamp': clampIndex,\n\t'normalize': normalizeIndex,\n\t'throw': throwIfOutOfBounds\n};\n\n\n// FUNCTIONS //\n\n/**\n* Returns an index if within bounds and throw an error otherwise.\n*\n* @private\n* @param {integer} idx - index\n* @param {NonNegativeInteger} max - maximum index\n* @throws {RangeError} index out-of-bounds\n* @returns {integer} index\n*\n* @example\n* var idx = throwIfOutOfBounds( 2, 9 );\n* // returns 2\n*\n* idx = throwIfOutOfBounds( 10, 9 );\n* // throws \n*\n* idx = throwIfOutOfBounds( -1, 9 );\n* // throws \n*/\nfunction throwIfOutOfBounds( idx, max ) {\n\tif ( idx < 0 || idx > max ) {\n\t\tthrow new RangeError( format( 'invalid argument. Index must resolve to a value on the interval: [0, %d]. Value: `%d`.', max, idx ) );\n\t}\n\treturn idx;\n}\n\n/**\n* Normalizes an index before performing a strict bounds check.\n*\n* @private\n* @param {integer} idx - index\n* @param {NonNegativeInteger} max - maximum index\n* @throws {RangeError} index out-of-bounds\n* @returns {integer} index\n*\n* @example\n* var idx = normalizeIndex( 1, 10 );\n* // returns 1\n*\n* idx = normalizeIndex( -4, 10 );\n* // returns 7\n*\n* idx = normalizeIndex( -100, 10 );\n* // throws \n*/\nfunction normalizeIndex( idx, max ) {\n\tvar index = normalize( idx, max );\n\tif ( index < 0 || index > max ) {\n\t\tthrow new RangeError( format( 'invalid argument. Index must resolve to a value on the interval: [0, %d]. Value: `%d`.', max, idx ) );\n\t}\n\treturn index;\n}\n\n\n// MAIN //\n\n/**\n* Returns a function for returning an index according to a provided index mode.\n*\n* @param {string} mode - specifies how to handle an out-of-bounds index\n* @throws {TypeError} first argument must be a recognized index mode\n* @returns {Function} function for returning an index\n*\n* @example\n* var ind = factory( 'clamp' );\n*\n* var idx = ind( 2, 9 );\n* // returns 2\n*\n* idx = ind( 10, 9 );\n* // returns 9\n*\n* idx = ind( -1, 9 );\n* // returns 0\n*\n* @example\n* var ind = factory( 'wrap' );\n*\n* var idx = ind( 2, 9 );\n* // returns 2\n*\n* idx = ind( 10, 9 );\n* // returns 0\n*\n* idx = ind( -1, 9 );\n* // returns 9\n*\n* @example\n* var ind = factory( 'throw' );\n*\n* var idx = ind( 2, 9 );\n* // returns 2\n*\n* idx = ind( 10, 9 );\n* // throws \n*\n* idx = ind( -1, 9 );\n* // throws \n*\n* @example\n* var ind = factory( 'normalize' );\n*\n* var idx = ind( 1, 10 );\n* // returns 1\n*\n* idx = ind( -4, 10 );\n* // returns 7\n*\n* idx = ind( -100, 10 );\n* // throws \n*/\nfunction factory( mode ) {\n\tif ( !isIndexMode( mode ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a recognized index mode. Value: `%s`.', mode ) );\n\t}\n\treturn TABLE[ mode ];\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 clampIndex = require( './../../../base/clamp-index' );\nvar wrapIndex = require( './../../../base/wrap-index' );\nvar normalizeIndex = require( './../../../base/normalize-index' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns an index given an index mode.\n*\n* @param {integer} idx - index\n* @param {NonNegativeInteger} max - maximum index\n* @param {string} mode - specifies how to handle an index outside the interval `[0,max]`\n* @throws {RangeError} index out-of-bounds\n* @returns {integer} index\n*\n* @example\n* var idx = ind( 2, 9, 'clamp' );\n* // returns 2\n*\n* idx = ind( 10, 9, 'clamp' );\n* // returns 9\n*\n* idx = ind( -1, 9, 'clamp' );\n* // returns 0\n*\n* @example\n* var idx = ind( 2, 9, 'wrap' );\n* // returns 2\n*\n* idx = ind( 10, 9, 'wrap' );\n* // returns 0\n*\n* idx = ind( -1, 9, 'wrap' );\n* // returns 9\n*\n* @example\n* var idx = ind( 2, 9, 'throw' );\n* // returns 2\n*\n* idx = ind( 10, 9, 'throw' );\n* // throws \n*\n* idx = ind( -1, 9, 'throw' );\n* // throws \n*\n* @example\n* var idx = ind( 1, 10, 'normalize' );\n* // returns 1\n*\n* idx = ind( -4, 10, 'normalize' );\n* // returns 7\n*\n* idx = ind( -100, 10, 'normalize' );\n* // throws \n*/\nfunction ind( idx, max, mode ) {\n\tvar index;\n\tif ( mode === 'clamp' ) {\n\t\treturn clampIndex( idx, max );\n\t}\n\tif ( mode === 'wrap' ) {\n\t\treturn wrapIndex( idx, max );\n\t}\n\tindex = idx;\n\tif ( mode === 'normalize' ) {\n\t\tindex = normalizeIndex( index, max );\n\t}\n\tif ( index < 0 || index > max ) {\n\t\tthrow new RangeError( format( 'invalid argument. Index must resolve to a value on the interval: [0, %d]. Value: `%d`.', max, idx ) );\n\t}\n\treturn index;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ind;\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 an index given an index mode.\n*\n* @module @stdlib/ndarray/base/ind\n*\n* @example\n* var ind = require( '@stdlib/ndarray/base/ind' );\n*\n* var idx = ind( -1, 10, 'wrap' );\n* // returns 10\n*\n* idx = ind( 14, 10, 'wrap' );\n* // returns 3\n*\n* idx = ind( 6, 10, 'wrap' );\n* // returns 6\n*\n* @example\n* var ind = require( '@stdlib/ndarray/base/ind' );\n*\n* var idx = ind( -1, 10, 'clamp' );\n* // returns 0\n*\n* idx = ind( 14, 10, 'clamp' );\n* // returns 10\n*\n* idx = ind( 6, 10, 'clamp' );\n* // returns 6\n*\n* @example\n* var ind = require( '@stdlib/ndarray/base/ind' );\n*\n* var idx = ind( 1, 10, 'throw' );\n* // returns 1\n*\n* idx = ind( 14, 10, 'throw' );\n* // throws \n*\n* idx = ind( -1, 10, 'throw' );\n* // throws \n*\n* @example\n* var ind = require( '@stdlib/ndarray/base/ind' );\n*\n* var idx = ind( 1, 10, 'normalize' );\n* // returns 1\n*\n* idx = ind( -4, 10, 'normalize' );\n* // returns 7\n*\n* idx = ind( -100, 10, 'normalize' );\n* // throws \n*\n* @example\n* var ind = require( '@stdlib/ndarray/base/ind' );\n*\n* var fcn = ind.factory( 'clamp' );\n*\n* var idx = fcn( -1, 10 );\n* // returns 0\n*\n* idx = fcn( 14, 10 );\n* // returns 10\n*\n* idx = fcn( 6, 10 );\n* // returns 6\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar factory = require( './factory.js' );\nvar main = require( './main.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'factory', factory );\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/* eslint-disable no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nvar isInteger = require( '@stdlib/assert/is-integer' ).isPrimitive;\nvar getIndex = require( './../../base/ind' );\nvar parent = require( './../../base/ctor' ); // eslint-disable-line stdlib/no-redeclare\nvar format = require( '@stdlib/string/format' );\n\n\n// VARIABLES //\n\nvar base = parent.prototype.iget;\n\n\n// MAIN //\n\n/**\n* Returns an array element located at a specified linear index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the input argument is ignored and, for clarity, should not be provided.\n*\n* @private\n* @param {integer} [idx] - linear view index\n* @throws {TypeError} index must be an integer\n* @throws {RangeError} index exceeds array dimensions\n* @returns {*} array element\n*/\nfunction iget( idx ) {\n\tif ( this._ndims > 0 ) {\n\t\tif ( !isInteger( idx ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Index must be an integer. Value: `%s`.', idx ) );\n\t\t}\n\t\tidx = getIndex( idx, this._length-1, this._mode );\n\t\treturn base.call( this, idx );\n\t}\n\treturn base.call( this );\n}\n\n\n// EXPORTS //\n\nmodule.exports = iget;\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/* eslint-disable no-invalid-this */\n\n'use strict';\n\n// METHODS //\n\nvar isInteger = require( '@stdlib/assert/is-integer' ).isPrimitive;\nvar getIndex = require( './../../base/ind' );\nvar parent = require( './../../base/ctor' ); // eslint-disable-line stdlib/no-redeclare\nvar format = require( '@stdlib/string/format' );\n\n\n// VARIABLES //\n\nvar base = parent.prototype.iset;\n\n\n// MAIN //\n\n/**\n* Sets an array element located at a specified linear index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the first, and only, argument should be the value to set.\n*\n* @private\n* @param {integer} [idx] - linear view index\n* @param {*} v - value to set\n* @throws {Error} cannot write to a read-only array\n* @throws {TypeError} index must be an integer\n* @throws {RangeError} index exceeds array dimensions\n* @returns {ndarray} ndarray instance\n*/\nfunction iset( idx, v ) {\n\tif ( this._flags.READONLY ) {\n\t\tthrow new Error( 'invalid invocation. Cannot write to a read-only array.' );\n\t}\n\tif ( this._ndims > 0 ) {\n\t\tif ( !isInteger( idx ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Index must be an integer. Value: `%s`.', idx ) );\n\t\t}\n\t\tidx = getIndex( idx, this._length-1, this._mode );\n\t\tbase.call( this, idx, v );\n\t} else {\n\t\tbase.call( this, idx );\n\t}\n\treturn this;\n}\n\n\n// EXPORTS //\n\nmodule.exports = iset;\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/* eslint-disable no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nvar isInteger = require( '@stdlib/assert/is-integer' ).isPrimitive;\nvar getIndex = require( './../../base/ind' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @private\n* @param {...integer} [idx] - indices\n* @throws {TypeError} provided indices must be integer valued\n* @throws {RangeError} index exceeds array dimensions\n* @throws {RangeError} number of indices must equal the number of dimensions\n* @returns {*} array element\n*/\nfunction get() {\n\tvar idx;\n\tvar ind;\n\tvar M;\n\tvar i;\n\n\tif ( arguments.length !== this._ndims ) {\n\t\tthrow new RangeError( format( 'invalid arguments. Number of indices must match the number of dimensions. ndims: `%u`. nargs: `%u`.', this._ndims, arguments.length ) );\n\t}\n\tidx = this._offset;\n\tM = this._submode.length;\n\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\tif ( !isInteger( arguments[ i ] ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Indices must be integer valued. Argument: `%u`. Value: `%s`.', i, arguments[ i ] ) );\n\t\t}\n\t\tind = getIndex( arguments[ i ], this._shape[ i ]-1, this._submode[ i%M ] ); // eslint-disable-line max-len\n\t\tidx += this._strides[ i ] * ind;\n\t}\n\tif ( this._accessors ) {\n\t\treturn this._buffer.get( idx );\n\t}\n\treturn this._buffer[ idx ];\n}\n\n\n// EXPORTS //\n\nmodule.exports = get;\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/* eslint-disable no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nvar isInteger = require( '@stdlib/assert/is-integer' ).isPrimitive;\nvar getIndex = require( './../../base/ind' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Sets an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @private\n* @param {...integer} [idx] - indices\n* @param {*} v - value to set\n* @throws {Error} cannot write to a read-only array\n* @throws {TypeError} provided indices must be integer valued\n* @throws {RangeError} index exceeds array dimensions\n* @throws {RangeError} number of indices must equal the number of dimensions\n* @returns {ndarray} ndarray instance\n*/\nfunction set() {\n\tvar idx;\n\tvar ind;\n\tvar M;\n\tvar i;\n\n\tif ( this._flags.READONLY ) {\n\t\tthrow new Error( 'invalid invocation. Cannot write to a read-only array.' );\n\t}\n\tif ( arguments.length !== this._ndims+1 ) {\n\t\tthrow new RangeError( format( 'invalid arguments. Number of indices must match the number of dimensions. ndims: `%u`. nargs: `%u`.', this._ndims, arguments.length ) );\n\t}\n\tidx = this._offset;\n\tM = this._submode.length;\n\tfor ( i = 0; i < arguments.length-1; i++ ) {\n\t\tif ( !isInteger( arguments[ i ] ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Indices must be integer valued. Argument: `%i`. Value: `%s`.', i, arguments[ i ] ) );\n\t\t}\n\t\tind = getIndex( arguments[ i ], this._shape[ i ]-1, this._submode[ i%M ] ); // eslint-disable-line max-len\n\t\tidx += this._strides[ i ] * ind;\n\t}\n\tif ( this._accessors ) {\n\t\tthis._buffer.set( arguments[ i ], idx );\n\t} else {\n\t\tthis._buffer[ idx ] = arguments[ i ];\n\t}\n\treturn this;\n}\n\n\n// EXPORTS //\n\nmodule.exports = set;\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* Copies the contents of array-like value to a new array.\n*\n* @private\n* @param {ArrayLike} arr - input array\n* @param {NonNegativeInteger} len - array length\n* @returns {Array} output array\n*\n* @example\n* var arr = [ 1.0, 2.0, 3.0 ];\n*\n* var out = copy( arr, arr.length );\n* // returns [ 1.0, 2.0, 3.0 ]\n*\n* var bool = ( arr === out );\n* // returns false\n*/\nfunction copy( arr, len ) {\n\tvar out;\n\tvar i;\n\n\tout = [];\n\tfor ( i = 0; i < len; i++ ) {\n\t\tout.push( arr[ i ] );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = copy;\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 isArray = require( '@stdlib/assert/is-array' );\nvar isIndexMode = require( './../../base/assert/is-index-mode' );\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.mode] - specifies how to handle indices which exceed array dimensions\n* @param {string} [options.submode] - specifies how to handle subscripts which exceed array dimensions\n* @param {boolean} [options.readonly] - boolean indicating whether an array should be read-only\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'mode': 'clamp',\n* 'submode': [ 'throw', 'wrap', 'clamp' ]\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tvar i;\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, 'mode' ) ) {\n\t\topts.mode = options.mode;\n\t\tif ( !isIndexMode( opts.mode ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a recognized mode. Option: `%s`.', 'mode', opts.mode ) );\n\t\t}\n\t}\n\tif ( hasOwnProp( options, 'submode' ) ) {\n\t\topts.submode = options.submode;\n\t\tif ( !isArray( opts.submode ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be an array containing recognized modes. Option: `%s`.', 'submode', opts.submode ) );\n\t\t}\n\t\tif ( opts.submode.length === 0 ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be an array containing recognized modes. Option: `%s`.', 'submode', opts.submode.join( ',' ) ) );\n\t\t}\n\t\tfor ( i = 0; i < opts.submode.length; i++ ) {\n\t\t\tif ( !isIndexMode( opts.submode[ i ] ) ) {\n\t\t\t\treturn new TypeError( format( 'invalid option. Each submode must be a recognized mode. Option: `%s`.', opts.submode[ i ] ) );\n\t\t\t}\n\t\t}\n\t\topts.submode = opts.submode.slice();\n\t}\n\tif ( hasOwnProp( options, 'readonly' ) ) {\n\t\topts.readonly = options.readonly;\n\t\tif ( !isBoolean( opts.readonly ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'readonly', opts.readonly ) );\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/* eslint-disable no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar isNonNegativeIntegerArray = require( '@stdlib/assert/is-nonnegative-integer-array' ).primitives;\nvar isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar isIntegerArray = require( '@stdlib/assert/is-integer-array' ).primitives;\nvar isFunction = require( '@stdlib/assert/is-function' );\nvar isOrder = require( './../../base/assert/is-order' );\nvar isDataType = require( './../../base/assert/is-data-type' );\nvar isBufferLengthCompatible = require( './../../base/assert/is-buffer-length-compatible' );\nvar numel = require( './../../base/numel' );\nvar parent = require( './../../base/ctor' ); // eslint-disable-line stdlib/no-redeclare\nvar defaults = require( './../../defaults' );\nvar inherit = require( '@stdlib/utils/inherit' );\nvar format = require( '@stdlib/string/format' );\nvar iget = require( './iget.js' );\nvar iset = require( './iset.js' );\nvar get = require( './get.js' );\nvar set = require( './set.js' );\nvar copy = require( './copy_array.js' );\nvar validate = require( './validate.js' );\n\n\n// VARIABLES //\n\n/*\n* See the following references:\n*\n* - https://stackoverflow.com/questions/22747068/is-there-a-max-number-of-arguments-javascript-functions-can-accept\n* - https://bugs.webkit.org/show_bug.cgi?id=80797\n* - https://github.com/numpy/numpy/issues/5744\n*\n* Note that the maximum number of function arguments can vary from engine to engine. Here, we choose something of a lowest common denominator which may **not** be valid everywhere.\n*/\nvar MAX_DIMS = 32767|0;\n\nvar INDEX_MODE = defaults.get( 'index_mode' );\nvar READONLY = false;\n\n\n// MAIN //\n\n/**\n* ndarray constructor.\n*\n* @constructor\n* @param {string} dtype - data type\n* @param {Collection} buffer - data buffer\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - array strides\n* @param {NonNegativeInteger} offset - index offset\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @param {Options} [options] - function options\n* @param {string} [options.mode=\"throw\"] - specifies how to handle indices which exceed array dimensions\n* @param {StringArray} [options.submode=[\"throw\"]] - specifies how to handle subscripts which exceed array dimensions on a per dimension basis\n* @param {boolean} [options.readonly=false] - boolean indicating whether an array should be read-only\n* @throws {TypeError} `dtype` argument must be a supported ndarray data type\n* @throws {TypeError} `buffer` argument must be an array-like object, typed-array-like, or a Buffer\n* @throws {TypeError} `buffer` argument `get` and `set` properties must be functions\n* @throws {TypeError} `shape` argument must be an array-like object containing nonnegative integers\n* @throws {Error} `shape` argument length must equal the number of dimensions\n* @throws {TypeError} `strides` argument must be an array-like object containing integers\n* @throws {Error} `strides` argument length must equal the number of dimensions (except for zero-dimensional arrays; in which case, the `strides` argument length must be equal to `1`)\n* @throws {Error} for zero-dimensional ndarrays, the `strides` argument must contain a single element equal to `0`\n* @throws {TypeError} `offset` argument must be a nonnegative integer\n* @throws {TypeError} `order` argument must be a supported ndarray order\n* @throws {Error} `buffer` argument must be compatible with specified meta data\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {RangeError} too many dimensions\n* @returns {ndarray} ndarray instance\n*\n* @example\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var out = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*/\nfunction ndarray( dtype, buffer, shape, strides, offset, order, options ) {\n\tvar ndims;\n\tvar opts;\n\tvar err;\n\tvar sh;\n\tvar st;\n\n\tif ( !(this instanceof ndarray) ) {\n\t\tif ( arguments.length < 7 ) {\n\t\t\treturn new ndarray( dtype, buffer, shape, strides, offset, order );\n\t\t}\n\t\treturn new ndarray( dtype, buffer, shape, strides, offset, order, options ); // eslint-disable-line max-len\n\t}\n\tif ( !isDataType( dtype ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a supported ndarray data type. Value: `%s`.', dtype ) );\n\t}\n\tif ( !isCollection( buffer ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an array-like object, typed-array-like, or a Buffer. Value: `%s`.', buffer ) );\n\t} else if ( buffer.get && buffer.set && ( !isFunction( buffer.get ) || !isFunction( buffer.set ) ) ) { // eslint-disable-line max-len\n\t\tthrow new TypeError( format( 'invalid argument. Second argument `get` and `set` properties must be functions. Value: `%s`.', buffer ) );\n\t}\n\tif ( !isNonNegativeIntegerArray( shape ) ) {\n\t\tif ( !isCollection( shape) || shape.length > 0 ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an array-like object containing nonnegative integers. Value: `%s`.', shape ) );\n\t\t}\n\t}\n\tndims = shape.length;\n\tif ( ndims > MAX_DIMS ) {\n\t\tthrow new RangeError( format( 'invalid argument. Number of dimensions must not exceed %u due to stack limits. Value: `%u`.', MAX_DIMS, ndims ) );\n\t}\n\tif ( !isIntegerArray( strides ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be an array-like object containing integers. Value: `%s`.', strides ) );\n\t}\n\tif ( ndims > 0 ) {\n\t\tif ( strides.length !== ndims ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Fourth argument length must match the number of dimensions. Expected number of dimensions: `%u`. Strides length: `%u`.', ndims, strides.length ) );\n\t\t}\n\t} else if ( strides.length !== 1 ) {\n\t\tthrow new RangeError( 'invalid argument. Fourth argument length must be equal to 1 when creating a zero-dimensional ndarray.' );\n\t} else if ( strides[ 0 ] !== 0 ) {\n\t\tthrow new RangeError( format( 'invalid argument. Fourth argument must contain a single element equal to 0. Value: `%d`.', strides[ 0 ] ) );\n\t}\n\tif ( !isNonNegativeInteger( offset ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fifth argument must be a nonnegative integer. Value: `%s`.', offset ) );\n\t}\n\tif ( !isOrder( order ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Sixth argument must be a supported order. Value: `%s`.', order ) );\n\t}\n\tif ( ndims > 0 && !isBufferLengthCompatible( buffer.length, shape, strides, offset ) && numel( shape ) > 0 ) { // eslint-disable-line max-len\n\t\tthrow new Error( 'invalid arguments. Input buffer is incompatible with the specified meta data. Ensure that the offset is valid with regard to the strides array and that the buffer has enough elements to satisfy the desired array shape.' );\n\t}\n\topts = {};\n\topts.mode = INDEX_MODE;\n\topts.readonly = READONLY;\n\tif ( arguments.length > 6 ) {\n\t\terr = validate( opts, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\tthis._mode = opts.mode;\n\tif ( opts.submode === void 0 ) {\n\t\topts.submode = [ this._mode ];\n\t}\n\tthis._submode = opts.submode;\n\n\t// Copy `shape` and `strides` to prevent external mutation:\n\tsh = copy( shape, ndims );\n\tst = copy( strides, ndims || 1 );\n\n\t// Call the parent constructor:\n\tparent.call( this, dtype, buffer, sh, st, offset, order );\n\tthis._flags.READONLY = opts.readonly;\n\n\treturn this;\n\n\t/* eslint-enable no-invalid-this */\n}\n\n// Inherit from the parent constructor:\ninherit( ndarray, parent );\n\n/**\n* Constructor name.\n*\n* @name name\n* @memberof ndarray\n* @type {string}\n* @default 'ndarray'\n*\n* @example\n* var str = ndarray.name;\n* // returns 'ndarray'\n*/\nsetReadOnly( ndarray, 'name', 'ndarray' );\n\n/**\n* Returns an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @name get\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {...integer} [idx] - indices\n* @returns {*} array element\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.get( 1, 1 );\n* // returns 4\n*/\nsetReadOnly( ndarray.prototype, 'get', get );\n\n/**\n* Returns an array element located at a specified linear index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the input argument is ignored and, for clarity, should not be provided.\n*\n* @name iget\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {integer} [idx] - linear index\n* @returns {*} array element\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.iget( 3 );\n* // returns 4\n*/\nsetReadOnly( ndarray.prototype, 'iget', iget );\n\n/**\n* Sets an array element.\n*\n* ## Notes\n*\n* - The number of indices should **equal** the number of dimensions. Accordingly, for zero-dimensional arrays, no indices should be provided.\n*\n* @name set\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {...integer} [idx] - indices\n* @param {*} v - value to set\n* @returns {ndarray} ndarray instance\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.get( 1, 1 );\n* // returns 4\n*\n* x.set( 1, 1, 10 );\n*\n* var b = x.data;\n* // returns [ 1, 2, 3, 10, 5, 6 ]\n*\n* v = x.get( 1, 1 );\n* // returns 10\n*/\nsetReadOnly( ndarray.prototype, 'set', set );\n\n/**\n* Sets an array element located at a specified linear index.\n*\n* ## Notes\n*\n* - For zero-dimensional arrays, the first, and only, argument should be the value to set.\n*\n* @name iset\n* @memberof ndarray.prototype\n* @type {Function}\n* @param {integer} [idx] - linear index\n* @param {*} v - value to set\n* @returns {ndarray} ndarray instance\n*\n* @example\n* var buffer = [ 1, 2, 3, 4, 5, 6 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*\n* var v = x.iget( 3 );\n* // returns 4\n*\n* x.iset( 3, 10 );\n*\n* var b = x.data;\n* // returns [ 1, 2, 3, 10, 5, 6 ]\n*\n* v = x.iget( 3 );\n* // returns 10\n*/\nsetReadOnly( ndarray.prototype, 'iset', iset );\n\n\n// EXPORTS //\n\nmodule.exports = ndarray;\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* Multidimensional array constructor.\n*\n* @module @stdlib/ndarray/ctor\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var out = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "[\n\t\"none\",\n\t\"equiv\",\n\t\"safe\",\n \"mostly-safe\",\n\t\"same-kind\",\n\t\"unsafe\"\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 MODES = require( './modes.json' );\n\n\n// MAIN //\n\n/**\n* Returns a list of ndarray casting modes.\n*\n* @returns {StringArray} list of ndarray casting modes\n*\n* @example\n* var list = modes();\n* // returns [ 'none', 'equiv', 'safe', 'mostly-safe', 'same-kind', 'unsafe' ]\n*/\nfunction modes() {\n\treturn MODES.slice();\n}\n\n\n// EXPORTS //\n\nmodule.exports = modes;\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 an object mapping supported casting modes to integer values for purposes of C inter-operation.\n*\n* ## Notes\n*\n* - Downstream consumers of this mapping should **not** rely on specific integer values (e.g., `NO_CASTING == 0`). Instead, the object should be used in an opaque manner.\n* - The main purpose of this function is JavaScript and C inter-operation of ndarray objects.\n*\n* @returns {Object} object mapping supported casting modes to integer values\n*\n* @example\n* var table = enumerated();\n* // returns \n*/\nfunction enumerated() {\n\t// NOTE: the following should match the C `casting_modes.h` enumeration!!!!\n\treturn {\n\t\t'none': 0,\n\t\t'equiv': 1,\n\t\t'safe': 2,\n\t\t'mostly-safe': 3,\n\t\t'same-kind': 4,\n\t\t'unsafe': 5\n\t};\n}\n\n\n// EXPORTS //\n\nmodule.exports = enumerated;\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 ndarray casting modes.\n*\n* @module @stdlib/ndarray/casting-modes\n*\n* @example\n* var modes = require( '@stdlib/ndarray/casting-modes' );\n*\n* var list = modes();\n* // returns [ 'none', 'equiv', 'safe', 'mostly-safe', 'same-kind', 'unsafe' ]\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar modes = require( './main.js' );\nvar enumeration = require( './enum.js' );\n\n\n// MAIN //\n\nsetReadOnly( modes, 'enum', enumeration );\n\n\n// EXPORTS //\n\nmodule.exports = modes;\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 modes = require( './../../../../casting-modes' );\n\n\n// VARIABLES //\n\nvar MODES = modes();\nvar len = MODES.length;\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray casting mode.\n*\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray casting mode\n*\n* @example\n* var bool = isCastingMode( 'none' );\n* // returns true\n*\n* bool = isCastingMode( 'equiv' );\n* // returns true\n*\n* bool = isCastingMode( 'safe' );\n* // returns true\n*\n* bool = isCastingMode( 'mostly-safe' );\n* // returns true\n*\n* bool = isCastingMode( 'same-kind' );\n* // returns true\n*\n* bool = isCastingMode( 'unsafe' );\n* // returns true\n*\n* bool = isCastingMode( 'foo' );\n* // returns false\n*/\nfunction isCastingMode( v ) {\n\tvar i;\n\tfor ( i = 0; i < len; i++ ) {\n\t\tif ( v === MODES[ i ] ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\n\n// EXPORTS //\n\nmodule.exports = isCastingMode;\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* Test whether an input value is a supported ndarray casting mode.\n*\n* @module @stdlib/ndarray/base/assert/is-casting-mode\n*\n* @example\n* var isCastingMode = require( '@stdlib/ndarray/base/assert/is-casting-mode' );\n*\n* var bool = isCastingMode( 'none' );\n* // returns true\n*\n* bool = isCastingMode( 'equiv' );\n* // returns true\n*\n* bool = isCastingMode( 'safe' );\n* // returns true\n*\n* bool = isCastingMode( 'mostly-safe' );\n* // returns true\n*\n* bool = isCastingMode( 'same-kind' );\n* // returns true\n*\n* bool = isCastingMode( 'unsafe' );\n* // returns true\n*\n* bool = isCastingMode( 'foo' );\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) 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 objectInverse = require( '@stdlib/utils/object-inverse' );\nvar enumeration = require( './../../../dtypes' ).enum;\n\n\n// VARIABLES //\n\nvar hash = objectInverse( enumeration(), {\n\t'duplicates': false\n});\n\n\n// MAIN //\n\n/**\n* Returns the data type string associated with an ndarray data type enumeration constant.\n*\n* @param {integer} dtype - data type enumeration constant\n* @returns {(string|null)} data type string or null\n*\n* @example\n* var str2enum = require( '@stdlib/ndarray/base/dtype-str2enum' );\n*\n* var v = str2enum( 'float64' );\n* // returns \n*\n* var dt = enum2str( v );\n* // returns 'float64'\n*/\nfunction enum2str( dtype ) {\n\tvar v = hash[ dtype ];\n\treturn ( typeof v === 'string' ) ? v : null; // note: we include this guard to prevent walking the prototype chain\n}\n\n\n// EXPORTS //\n\nmodule.exports = enum2str;\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* Return the data type string associated with an ndarray data type enumeration constant.\n*\n* @module @stdlib/ndarray/base/dtype-enum2str\n*\n* @example\n* var str2enum = require( '@stdlib/ndarray/base/dtype-str2enum' );\n* var enum2str = require( '@stdlib/ndarray/base/dtype-enum2str' );\n*\n* var v = str2enum( 'float64' );\n* // returns \n*\n* var dt = enum2str( v );\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) 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 enumeration = require( './../../../dtypes' ).enum;\n\n\n// VARIABLES //\n\nvar ENUM = enumeration();\n\n\n// MAIN //\n\n/**\n* Returns the enumeration constant associated with an ndarray data type string.\n*\n* ## Notes\n*\n* - Downstream consumers of this function should **not** rely on specific integer values (e.g., `INT8 == 0`). Instead, the function should be used in an opaque manner.\n*\n* @param {string} dtype - data type string\n* @returns {(integer|null)} integer value or null\n*\n* @example\n* var v = str2enum( 'int8' );\n* // returns \n*/\nfunction str2enum( dtype ) {\n\tvar v = ENUM[ dtype ];\n\treturn ( typeof v === 'number' ) ? v : null; // note: we include this guard to prevent walking the prototype chain\n}\n\n\n// EXPORTS //\n\nmodule.exports = str2enum;\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* Return the enumeration constant associated with an ndarray data type string.\n*\n* @module @stdlib/ndarray/base/dtype-str2enum\n*\n* @example\n* var str2enum = require( '@stdlib/ndarray/base/dtype-str2enum' );\n*\n* var v = str2enum( 'float64' );\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) 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 enum2str = require( './../../../base/dtype-enum2str' );\nvar str2enum = require( './../../../base/dtype-str2enum' );\n\n\n// MAIN //\n\n/**\n* Returns the data type string associated with a supported ndarray data type value.\n*\n* @param {*} dtype - data type value\n* @returns {(string|null)} data type string or null\n*\n* @example\n* var str2enum = require( '@stdlib/ndarray/base/dtype-str2enum' );\n*\n* var v = resolve( str2enum( 'float64' ) );\n* // returns 'float64'\n*/\nfunction resolve( dtype ) {\n\tvar t = ( typeof dtype );\n\tif ( t === 'string' ) {\n\t\treturn ( str2enum( dtype ) === null ) ? null : dtype;\n\t}\n\tif ( t === 'number' ) {\n\t\treturn enum2str( dtype );\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = resolve;\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* Return the data type string associated with a supported ndarray data type value.\n*\n* @module @stdlib/ndarray/base/dtype-resolve-str\n*\n* @example\n* var str2enum = require( '@stdlib/ndarray/base/dtype-str2enum' );\n* var resolve = require( '@stdlib/ndarray/base/dtype-resolve-str' );\n*\n* var v = resolve( str2enum( 'float64' ) );\n* // returns 'float64'\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 0,\n\t\t\"binary\": 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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 0,\n\t\t\"binary\": 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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 0,\n\t\t\"binary\": 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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\n\t\t\"generic\": 1\n\t},\n\t\"complex128\": {\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 0,\n\t\t\"binary\": 0,\n\t\t\"generic\": 1\n\t},\n\t\"complex64\": {\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\n\t\t\"generic\": 1\n\t},\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\t\t\"complex128\": 0,\n\t\t\"complex64\": 0,\n\t\t\"binary\": 0,\n\t\t\"generic\": 1\n\t},\n\t\"binary\": {\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\t\t\"complex128\": 0,\n\t\t\"complex64\": 0,\n\t\t\"binary\": 1,\n\t\t\"generic\": 0\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 resolve = require( './../../base/dtype-resolve-str' );\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 ndarray 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 ndarray 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 ndarray data types to which a provided ndarray data type can be safely cast.\n*\n* @param {*} [dtype] - ndarray data type value\n* @returns {(Object|StringArray|null)} list of ndarray 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\tdtype = resolve( dtype );\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 ndarray data types to which a provided ndarray data type can be safely cast.\n*\n* @module @stdlib/ndarray/safe-casts\n*\n* @example\n* var safeCasts = require( '@stdlib/ndarray/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* @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 safeCasts = require( './../../../../safe-casts' );\n\n\n// VARIABLES //\n\nvar TABLE = safeCasts();\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if a provided ndarray data type can be safely cast to another ndarray data type.\n*\n* @param {string} from - ndarray data type\n* @param {string} to - ndarray data type\n* @returns {boolean} boolean indicating if a data type can be safely cast to another data type\n*\n* @example\n* var bool = isSafeCast( 'float32', 'float64' );\n* // returns true\n*\n* bool = isSafeCast( 'float64', 'int32' );\n* // returns false\n*/\nfunction isSafeCast( from, to ) {\n\tif ( from === to ) {\n\t\treturn true;\n\t}\n\treturn ( TABLE[ from ][ to ] > 0 );\n}\n\n\n// EXPORTS //\n\nmodule.exports = isSafeCast;\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 if an ndarray data type can be safely cast to another ndarray data type.\n*\n* @module @stdlib/ndarray/base/assert/is-safe-data-type-cast\n*\n* @example\n* var isSafeCast = require( '@stdlib/ndarray/base/assert/is-safe-data-type-cast' );\n*\n* var bool = isSafeCast( 'float32', 'float64' );\n* // returns true\n*\n* bool = isSafeCast( 'float64', 'int32' );\n* // returns false\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 0,\n\t\t\"binary\": 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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 0,\n\t\t\"binary\": 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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\n\t\t\"generic\": 1\n\t},\n\t\"complex128\": {\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\n\t\t\"generic\": 1\n\t},\n\t\"complex64\": {\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\n\t\t\"generic\": 1\n\t},\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\t\t\"complex128\": 0,\n\t\t\"complex64\": 0,\n\t\t\"binary\": 0,\n\t\t\"generic\": 1\n\t},\n\t\"binary\": {\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\t\t\"complex128\": 0,\n\t\t\"complex64\": 0,\n\t\t\"binary\": 1,\n\t\t\"generic\": 0\n\t}\n}\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 resolve = require( './../../base/dtype-resolve-str' );\nvar CASTS = require( './data.json' );\n\n\n// VARIABLES //\n\nvar TABLE;\n\n\n// FUNCTIONS //\n\n/**\n* Generates a full table of casts for each ndarray 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( CASTS );\n\tntypes = dtypes.length;\n\tfor ( i = 0; i < ntypes; i++ ) {\n\t\tdt1 = dtypes[ i ];\n\t\to = 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 casts for each ndarray 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( CASTS );\n\tntypes = dtypes.length;\n\tfor ( i = 0; i < ntypes; i++ ) {\n\t\tdt1 = dtypes[ i ];\n\t\to = 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 ndarray data types to which a provided ndarray data type can be safely cast and, for floating-point data types, can be downcast.\n*\n* @param {*} [dtype] - ndarray data type value\n* @returns {(Object|StringArray|null)} list of ndarray data types or null\n*\n* @example\n* var list = mostlySafeCasts( 'float32' );\n* // returns [...]\n*/\nfunction mostlySafeCasts( 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\tdtype = resolve( dtype );\n\tif ( hasOwnProp( TABLE, dtype ) ) {\n\t\treturn TABLE[ dtype ].slice();\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = mostlySafeCasts;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 ndarray data types to which a provided ndarray data type can be safely cast and, for floating-point data types, can be downcast.\n*\n* @module @stdlib/ndarray/mostly-safe-casts\n*\n* @example\n* var mostlySafeCasts = require( '@stdlib/ndarray/mostly-safe-casts' );\n*\n* var list = mostlySafeCasts( '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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 casts = require( './../../../../mostly-safe-casts' );\n\n\n// VARIABLES //\n\nvar TABLE = casts();\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if a provided ndarray data type can be safely cast or, for floating-point data types, downcast to another ndarray data type.\n*\n* @param {string} from - ndarray data type\n* @param {string} to - ndarray data type\n* @returns {boolean} boolean indicating if a data type can be cast to another data type\n*\n* @example\n* var bool = isMostlySafeCast( 'float32', 'float64' );\n* // returns true\n*\n* bool = isMostlySafeCast( 'float64', 'int32' );\n* // returns false\n*/\nfunction isMostlySafeCast( from, to ) {\n\tif ( from === to ) {\n\t\treturn true;\n\t}\n\treturn ( TABLE[ from ][ to ] > 0 );\n}\n\n\n// EXPORTS //\n\nmodule.exports = isMostlySafeCast;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 if an ndarray data type can be safely cast or, for floating-point data types, downcast to another ndarray data type.\n*\n* @module @stdlib/ndarray/base/assert/is-mostly-safe-data-type-cast\n*\n* @example\n* var isMostlySafeCast = require( '@stdlib/ndarray/base/assert/is-mostly-safe-data-type-cast' );\n*\n* var bool = isMostlySafeCast( 'float32', 'float64' );\n* // returns true\n*\n* bool = isMostlySafeCast( 'float64', 'int32' );\n* // returns false\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 0,\n\t\t\"binary\": 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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 0,\n\t\t\"binary\": 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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 0,\n\t\t\"binary\": 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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\n\t\t\"generic\": 1\n\t},\n\t\"complex128\": {\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\n\t\t\"generic\": 0\n\t},\n\t\"complex64\": {\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\t\t\"complex128\": 1,\n\t\t\"complex64\": 1,\n\t\t\"binary\": 0,\n\t\t\"generic\": 0\n\t},\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\t\t\"complex128\": 0,\n\t\t\"complex64\": 0,\n\t\t\"binary\": 0,\n\t\t\"generic\": 1\n\t},\n\t\"binary\": {\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\t\t\"complex128\": 0,\n\t\t\"complex64\": 0,\n\t\t\"binary\": 1,\n\t\t\"generic\": 0\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 resolve = require( './../../base/dtype-resolve-str' );\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 ndarray 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 ndarray 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 ndarray data types to which a provided ndarray data type can be safely cast or cast within the same \"kind\".\n*\n* @param {*} [dtype] - ndarray data type value\n* @returns {(Object|StringArray|null)} list of ndarray 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\tdtype = resolve( dtype );\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 ndarray data types to which a provided ndarray data type can be safely cast or cast within the same \"kind\".\n*\n* @module @stdlib/ndarray/same-kind-casts\n*\n* @example\n* var sameKindCasts = require( '@stdlib/ndarray/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 sameKindCasts = require( './../../../../same-kind-casts' );\n\n\n// VARIABLES //\n\nvar TABLE = sameKindCasts();\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if a provided ndarray data type can be safely cast to, or is of the same \"kind\" as, another ndarray data type.\n*\n* @param {string} from - ndarray data type\n* @param {string} to - ndarray data type\n* @returns {boolean} boolean indicating if a data type can be cast to another data type\n*\n* @example\n* var bool = isSameKindCast( 'float32', 'float64' );\n* // returns true\n*\n* bool = isSameKindCast( 'uint16', 'int16' );\n* // returns false\n*/\nfunction isSameKindCast( from, to ) {\n\tif ( from === to ) {\n\t\treturn true;\n\t}\n\treturn ( TABLE[ from ][ to ] > 0 );\n}\n\n\n// EXPORTS //\n\nmodule.exports = isSameKindCast;\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 if an ndarray data type can be safely cast to, or is of the same \"kind\" as, another ndarray data type.\n*\n* @module @stdlib/ndarray/base/assert/is-same-kind-data-type-cast\n*\n* @example\n* var isSameKindCast = require( '@stdlib/ndarray/base/assert/is-same-kind-data-type-cast' );\n*\n* var bool = isSameKindCast( 'float32', 'float64' );\n* // returns true\n*\n* bool = isSameKindCast( 'uint16', 'int16' );\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) 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 isSafeCast = require( './../../../../base/assert/is-safe-data-type-cast' );\nvar isMostlySafeCast = require( './../../../../base/assert/is-mostly-safe-data-type-cast' );\nvar isSameKindCast = require( './../../../../base/assert/is-same-kind-data-type-cast' );\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if a provided ndarray data type can be cast to another ndarray data type according to a specified casting mode.\n*\n* @param {string} from - ndarray data type\n* @param {string} to - ndarray data type\n* @param {string} casting - ndarray casting mode\n* @returns {boolean} boolean indicating if a data type can be cast to another data type\n*\n* @example\n* var bool = isAllowedCast( 'float32', 'float64', 'safe' );\n* // returns true\n*\n* bool = isAllowedCast( 'float64', 'int32', 'safe' );\n* // returns false\n*/\nfunction isAllowedCast( from, to, casting ) {\n\t// Anything goes for \"unsafe\" casting...\n\tif ( casting === 'unsafe' ) {\n\t\treturn true;\n\t}\n\t// \"Casting\" to the same data type is always allowed, regardless of the casting mode...\n\tif ( from === to ) {\n\t\treturn true;\n\t}\n\t// No casts between different data types are allowed in \"none\" or \"equiv\" casting modes...\n\tif ( casting === 'none' || casting === 'equiv' ) {\n\t\treturn false;\n\t}\n\t// In \"safe\" casting mode, only casts which preserve values are allowed...\n\tif ( casting === 'safe' ) {\n\t\treturn isSafeCast( from, to );\n\t}\n\t// In \"mostly-safe\" casting mode, in addition to \"safe\" casts, for floating-point data types, downcasts are allowed...\n\tif ( casting === 'mostly-safe' ) {\n\t\treturn isMostlySafeCast( from, to );\n\t}\n\t// In \"same-kind\" casting mode, in addition to \"safe\" casts, casts within a \"kind\" (e.g., between signed integers or between floating-point numbers) are allowed...\n\treturn isSameKindCast( from, to );\n}\n\n\n// EXPORTS //\n\nmodule.exports = isAllowedCast;\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 if an array data type can be cast to another array data type according to a specified casting rule.\n*\n* @module @stdlib/ndarray/base/assert/is-allowed-data-type-cast\n*\n* @example\n* var isAllowedCast = require( '@stdlib/ndarray/base/assert/is-allowed-data-type-cast' );\n*\n* var bool = isAllowedCast( 'float32', 'float64', 'safe' );\n* // returns true\n*\n* bool = isAllowedCast( 'float64', 'int32', 'safe' );\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) 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 Buffer = require( '@stdlib/buffer/ctor' );\nvar Float64Array = require( '@stdlib/array/float64' );\nvar Float32Array = require( '@stdlib/array/float32' );\nvar Int16Array = require( '@stdlib/array/int16' );\nvar Int32Array = require( '@stdlib/array/int32' );\nvar Int8Array = require( '@stdlib/array/int8' );\nvar Uint16Array = require( '@stdlib/array/uint16' );\nvar Uint32Array = require( '@stdlib/array/uint32' );\nvar Uint8Array = require( '@stdlib/array/uint8' );\nvar Uint8ClampedArray = require( '@stdlib/array/uint8c' );\nvar Complex64Array = require( '@stdlib/array/complex64' );\nvar Complex128Array = require( '@stdlib/array/complex128' );\n\n\n// MAIN //\n\n// Mapping from data types to underlying buffer constructors...\nvar ctors = {\n\t'binary': Buffer,\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 ndarray data buffer constructor.\n*\n* @param {string} dtype - data type\n* @returns {(Function|null)} data buffer 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* ndarray data buffer constructors.\n*\n* @module @stdlib/ndarray/base/buffer-ctors\n*\n* @example\n* var ctors = require( '@stdlib/ndarray/base/buffer-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// MAIN //\n\n/**\n* Fills an array-like object with zeros.\n*\n* @private\n* @param {(Array|TypedArray|Buffer)} v - array-like object to fill\n* @returns {(Array|TypedArray|Buffer)} input value\n*\n* @example\n* var arr = zeros( new Array( 2 ) );\n* // returns [ 0, 0 ]\n*/\nfunction zeros( v ) {\n\tvar i;\n\tfor ( i = 0; i < v.length; i++ ) {\n\t\tv[ i ] = 0;\n\t}\n\treturn v;\n}\n\n\n// EXPORTS //\n\nmodule.exports = zeros;\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 bufferCtors = require( './../../../base/buffer-ctors' );\nvar allocUnsafe = require( '@stdlib/buffer/alloc-unsafe' );\nvar zeros = require( './zeros.js' );\n\n\n// FUNCTIONS //\n\n/**\n* Returns a zero-filled generic array.\n*\n* @private\n* @param {NonNegativeInteger} size - buffer size\n* @returns {Array} zero-filled generic array\n*/\nfunction generic( size ) {\n\tvar buf;\n\tvar i;\n\n\tbuf = [];\n\tfor ( i = 0; i < size; i++ ) {\n\t\tbuf.push( 0 );\n\t}\n\treturn buf;\n}\n\n/**\n* Returns a zero-filled binary buffer.\n*\n* @private\n* @param {NonNegativeInteger} size - buffer size\n* @returns {Buffer} zero-filled binary buffer\n*/\nfunction binary( size ) {\n\treturn zeros( allocUnsafe( size ) );\n}\n\n/**\n* Returns a zero-filled typed array.\n*\n* @private\n* @param {string} dtype - data type\n* @param {NonNegativeInteger} size - buffer size\n* @returns {(TypedArray|null)} zero-filled typed array\n*/\nfunction typedarray( dtype, size ) {\n\tvar ctor = bufferCtors( dtype );\n\tif ( ctor ) {\n\t\treturn new ctor( size );\n\t}\n\treturn null;\n}\n\n\n// MAIN //\n\n/**\n* Returns a zero-filled contiguous linear ndarray data buffer.\n*\n* @param {string} dtype - data type\n* @param {NonNegativeInteger} size - buffer size\n* @returns {(Array|TypedArray|Buffer|null)} data buffer\n*\n* @example\n* var buf = buffer( 'float64', 3 );\n* // returns [ 0.0, 0.0, 0.0 ]\n*/\nfunction buffer( dtype, size ) {\n\tif ( dtype === 'generic' ) {\n\t\treturn generic( size );\n\t}\n\tif ( dtype === 'binary' ) {\n\t\treturn binary( size );\n\t}\n\treturn typedarray( dtype, size );\n}\n\n\n// EXPORTS //\n\nmodule.exports = buffer;\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 zero-filled contiguous linear ndarray data buffer.\n*\n* @module @stdlib/ndarray/base/buffer\n*\n* @example\n* var buffer = require( '@stdlib/ndarray/base/buffer' );\n*\n* var buf = buffer( 'float64', 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) 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 ndarray data buffer constructors to data types...\nvar dtypes = {\n\t'Buffer': 'binary',\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'Object': 'generic',\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 = 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 Float64Array = require( '@stdlib/array/float64' );\nvar Float32Array = require( '@stdlib/array/float32' );\nvar Uint32Array = require( '@stdlib/array/uint32' );\nvar Int32Array = require( '@stdlib/array/int32' );\nvar Uint16Array = require( '@stdlib/array/uint16' );\nvar Int16Array = require( '@stdlib/array/int16' );\nvar Uint8Array = require( '@stdlib/array/uint8' );\nvar Uint8ClampedArray = require( '@stdlib/array/uint8c' );\nvar Int8Array = require( '@stdlib/array/int8' );\nvar Complex64Array = require( '@stdlib/array/complex64' );\nvar Complex128Array = require( '@stdlib/array/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 ndarray data buffer.\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 'binary';\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 ndarray data buffer.\n*\n* @module @stdlib/ndarray/base/buffer-dtype\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var dtype = require( '@stdlib/ndarray/base/buffer-dtype' );\n*\n* var buf = new Float64Array( 10 );\n*\n* var dt = dtype( buf );\n* // returns 'float64'\n*\n* dt = dtype( {} );\n* // returns 'generic'\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 isDataType = require( './../../base/assert/is-data-type' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns the data type of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @throws {TypeError} must provide an ndarray having a supported data type\n* @returns {string} data type\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n*\n* var x = zeros( [ 3, 3, 3 ], {\n* 'dtype': 'float64'\n* });\n*\n* var dt = dtype( x );\n* // returns 'float64'\n*/\nfunction dtype( x ) {\n\tvar dt;\n\n\t// Note: we intentionally avoid rigorous ndarray checks to minimize performance impacts. This obviously means that non-ndarray-like objects can sneak through, but this is likely all right for the purposes of this function...\n\tif ( typeof x !== 'object' || x === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\tdt = x.dtype;\n\tif ( isDataType( dt ) ) {\n\t\treturn dt;\n\t}\n\t// A data type is essential for interpreting the memory associated with an ndarray object, so no fallbacks or workarounds for data type resolution...\n\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray having a supported data type. Value: `%s`.', dt ) );\n}\n\n\n// EXPORTS //\n\nmodule.exports = dtype;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 a provided ndarray.\n*\n* @module @stdlib/ndarray/dtype\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n* var dtype = require( '@stdlib/ndarray/dtype' );\n*\n* var x = zeros( [ 3, 3, 3 ], {\n* 'dtype': 'float64'\n* });\n*\n* var dt = dtype( x );\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 isCollection = require( '@stdlib/assert/is-collection' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns the shape of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @throws {TypeError} must provide an ndarray\n* @returns {NonNegativeIntegerArray} shape\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n*\n* var out = shape( zeros( [ 3, 3, 3 ] ) );\n* // returns [ 3, 3, 3 ]\n*/\nfunction shape( x ) {\n\tvar out;\n\tvar sh;\n\tvar d;\n\tvar i;\n\n\t// Note: we intentionally avoid rigorous ndarray checks to minimize performance impacts. This obviously means that non-ndarray-like objects can sneak through, but this is likely all right for the purposes of this function...\n\tif ( typeof x !== 'object' || x === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\tsh = x.shape;\n\tif ( !isCollection( sh ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\t// Copy the shape in order to avoid unintended mutation...\n\tout = [];\n\tfor ( i = 0; i < sh.length; i++ ) {\n\t\td = sh[ i ];\n\t\tif ( !isNonNegativeInteger( d ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t\t}\n\t\tout.push( d );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = shape;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 shape of a provided ndarray.\n*\n* @module @stdlib/ndarray/shape\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n* var shape = require( '@stdlib/ndarray/shape' );\n*\n* var sh = shape( zeros( [ 3, 3, 3 ] ) );\n* // returns [ 3, 3, 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'use strict';\n\n// MODULES //\n\nvar isInteger = require( '@stdlib/assert/is-integer' ).isPrimitive;\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar isOrder = require( './../../base/assert/is-order' );\nvar shape2strides = require( './../../base/shape2strides' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns the strides of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @throws {TypeError} must provide an ndarray\n* @returns {IntegerArray} strides\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n*\n* var out = strides( zeros( [ 3, 3, 3 ] ) );\n* // returns [ 9, 3, 1 ]\n*/\nfunction strides( x ) {\n\tvar out;\n\tvar ord;\n\tvar sh;\n\tvar st;\n\tvar d;\n\tvar i;\n\n\t// Note: we intentionally avoid rigorous ndarray checks to minimize performance impacts. This obviously means that non-ndarray-like objects can sneak through, but this is likely all right for the purposes of this function...\n\tif ( typeof x !== 'object' || x === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\tst = x.strides; // TODO: consider whether we want to support ecosystem libraries, such as scijs/ndarray, which name this property `stride`\n\tif ( !isCollection( st ) ) {\n\t\t// WARNING: if no strides array, try to derive the strides from the shape. Note, however, that there is a lot that can go wrong here, as the only thing we are requiring is that the shape is a collection. The main point of going through the effort to compute strides is to support minimal ndarray-esque objects, where the only essential attributes are `shape` and `dtype` and where other attributes can be computed (e.g., `strides`, `offset`, `ndims`, `order`, etc), assuming single-segment contiguous data stored in row-major order...\n\t\tsh = x.shape;\n\t\tif ( !isCollection( sh ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t\t}\n\t\tif ( sh.length === 0 ) {\n\t\t\treturn [ 0 ];\n\t\t}\n\t\tord = x.order;\n\t\tif ( !isOrder( ord ) ) {\n\t\t\tord = 'row-major';\n\t\t}\n\t\treturn shape2strides( sh, ord );\n\t}\n\t// Copy the strides in order to avoid unintended mutation...\n\tout = [];\n\tfor ( i = 0; i < st.length; i++ ) {\n\t\td = st[ i ];\n\t\tif ( !isInteger( d ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t\t}\n\t\tout.push( d );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = strides;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 strides of a provided ndarray.\n*\n* @module @stdlib/ndarray/strides\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n* var strides = require( '@stdlib/ndarray/strides' );\n*\n* var sh = strides( zeros( [ 3, 3, 3 ] ) );\n* // returns [ 9, 3, 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// MODULES //\n\nvar isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar strides2offset = require( './../../base/strides2offset' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns the index offset specifying the underlying buffer index of the first iterated ndarray element.\n*\n* @param {ndarrayLike} x - input ndarray\n* @throws {TypeError} must provide an ndarray\n* @returns {NonNegativeInteger} index offset\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n*\n* var n = offset( zeros( [ 3, 3, 3 ] ) );\n* // returns 0\n*/\nfunction offset( x ) {\n\tvar st;\n\tvar sh;\n\tvar n;\n\n\t// Note: we intentionally avoid rigorous ndarray checks to minimize performance impacts. This obviously means that non-ndarray-like objects can sneak through, but this is likely all right for the purposes of this function...\n\tif ( typeof x !== 'object' || x === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\tn = x.offset;\n\tif ( isNonNegativeInteger( n ) ) {\n\t\treturn n;\n\t}\n\tsh = x.shape;\n\tif ( !isCollection( sh ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\tst = x.strides;\n\tif ( sh.length === 0 || !isCollection( st ) ) {\n\t\treturn 0;\n\t}\n\tn = strides2offset( sh, st );\n\tif ( isNonNegativeInteger( n ) ) {\n\t\treturn n;\n\t}\n\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n}\n\n\n// EXPORTS //\n\nmodule.exports = offset;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 index offset specifying the underlying buffer index of the first iterated ndarray element.\n*\n* @module @stdlib/ndarray/offset\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n* var offset = require( '@stdlib/ndarray/offset' );\n*\n* var n = offset( zeros( [ 3, 3, 3 ] ) );\n* // returns 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 isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns the number of ndarray dimensions.\n*\n* @param {ndarrayLike} x - input ndarray\n* @throws {TypeError} must provide an ndarray\n* @returns {NonNegativeInteger} number of dimensions\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n*\n* var n = ndims( zeros( [ 3, 3, 3 ] ) );\n* // returns 3\n*/\nfunction ndims( x ) {\n\tvar sh;\n\tvar n;\n\n\t// Note: we intentionally avoid rigorous ndarray checks to minimize performance impacts. This obviously means that non-ndarray-like objects can sneak through, but this is likely all right for the purposes of this function...\n\tif ( typeof x !== 'object' || x === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\tn = x.ndims;\n\tif ( isNonNegativeInteger( n ) ) {\n\t\treturn n;\n\t}\n\tsh = x.shape;\n\tif ( !isCollection( sh ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\treturn sh.length;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ndims;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 number of ndarray dimensions.\n*\n* @module @stdlib/ndarray/ndims\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n* var ndims = require( '@stdlib/ndarray/ndims' );\n*\n* var n = ndims( zeros( [ 3, 3, 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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 isOrder = require( './../../base/assert/is-order' );\nvar strides = require( './../../strides' );\nvar ndims = require( './../../ndims' );\nvar strides2order = require( './../../base/strides2order' );\nvar format = require( '@stdlib/string/format' );\n\n\n// VARIABLES //\n\nvar ROW_MAJOR = 'row-major';\nvar COLUMN_MAJOR = 'column-major';\n\n\n// MAIN //\n\n/**\n* Returns the layout order of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @throws {TypeError} must provide an ndarray\n* @returns {(string|null)} layout order\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n*\n* var x = zeros( [ 3, 3, 3 ], {\n* 'order': 'row-major'\n* });\n*\n* var out = order( x );\n* // returns 'row-major'\n*/\nfunction order( x ) {\n\tvar st;\n\tvar o;\n\n\t// Note: we intentionally avoid rigorous ndarray checks to minimize performance impacts. This obviously means that non-ndarray-like objects can sneak through, but this is likely all right for the purposes of this function...\n\tif ( typeof x !== 'object' || x === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\to = x.order;\n\tif ( isOrder( o ) ) {\n\t\treturn o;\n\t}\n\t// Try to infer the layout order from the strides array...\n\tst = strides( x );\n\to = strides2order( st );\n\tif ( o === 1 || o === 3 ) {\n\t\treturn ROW_MAJOR; // for o == 3 (both row- and column-major; e.g., one-dimensional ndarrays), default to row-major\n\t}\n\tif ( o === 2 ) {\n\t\treturn COLUMN_MAJOR;\n\t}\n\t// o === 0\n\tif ( ndims( x ) === 0 ) {\n\t\treturn ROW_MAJOR; // default to row-major for zero-dimensional ndarrays\n\t}\n\t// Case: mixed strides (e.g., [ 2, 3, 1 ] )\n\treturn null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = order;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 layout order of a provided ndarray.\n*\n* @module @stdlib/ndarray/order\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n* var order = require( '@stdlib/ndarray/order' );\n*\n* var x = zeros( [ 3, 3, 3 ], {\n* 'order': 'row-major'\n* });\n*\n* var out = order( x );\n* // returns 'row-major'\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 isCollection = require( '@stdlib/assert/is-collection' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns the underlying data buffer of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @throws {TypeError} must provide an ndarray\n* @returns {Collection} underlying data buffer\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n*\n* var x = zeros( [ 3, 3, 3 ], {\n* 'dtype': 'float64'\n* });\n*\n* var out = data( x );\n* // returns \n*/\nfunction data( x ) {\n\tvar out;\n\n\t// Note: we intentionally avoid rigorous ndarray checks to minimize performance impacts. This obviously means that non-ndarray-like objects can sneak through, but this is likely all right for the purposes of this function...\n\tif ( typeof x !== 'object' || x === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\tout = x.data;\n\tif ( isCollection( out ) ) {\n\t\treturn out;\n\t}\n\t// A data buffer is essential for operating on an ndarray object, so no fallbacks or workarounds for data buffer resolution...\n\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n}\n\n\n// EXPORTS //\n\nmodule.exports = data;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 underlying data buffer of a provided ndarray.\n*\n* @module @stdlib/ndarray/data-buffer\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n* var data = require( '@stdlib/ndarray/data-buffer' );\n*\n* var x = zeros( [ 3, 3, 3 ], {\n* 'dtype': 'float64'\n* });\n*\n* var out = data( x );\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 PINF = require( '@stdlib/constants/float64/pinf' );\nvar isInteger = require( '@stdlib/math/base/assert/is-integer' );\n\n\n// MAIN //\n\n/**\n* Tests (loosely) if an input value is an array-like object.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if an input value is an array-like object\n*\n* @example\n* var bool = isArrayLikeObject( [] );\n* // returns true\n*\n* @example\n* var bool = isArrayLikeObject( '' );\n* // returns false\n*/\nfunction isArrayLikeObject( value ) {\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\ttypeof value.length === 'number' &&\n\t\tisInteger( value.length ) &&\n\t\tvalue.length >= 0 &&\n\t\tvalue.length < PINF\n\t);\n}\n\n\n// EXPORTS //\n\nmodule.exports = isArrayLikeObject;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 settings = require( './../../defaults' );\n\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'casting': settings.get( 'casting' ),\n\t\t'copy': false,\n\t\t'dtype': settings.get( 'dtypes.default' ),\n\t\t'flatten': true,\n\t\t'mode': settings.get( 'index_mode' ),\n\t\t'ndmin': 0,\n\t\t'order': settings.get( 'order' ),\n\t\t'readonly': false\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 bufferCtors = require( './../../base/buffer-ctors' );\nvar allocUnsafe = require( '@stdlib/buffer/alloc-unsafe' );\n\n\n// MAIN //\n\n/**\n* Casts buffer elements by copying those elements to a buffer of another data type.\n*\n* @private\n* @param {(Array|TypedArray|Buffer)} buffer - input buffer\n* @param {NonNegativeInteger} len - number of elements to cast\n* @param {string} dtype - data type\n* @returns {(Array|TypedArray|Buffer)} output buffer\n*\n* @example\n* var b = castBuffer( [ 1.0, 2.0, 3.0 ], 3, 'float64' );\n* // returns [ 1.0, 2.0, 3.0 ]\n*/\nfunction castBuffer( buffer, len, dtype ) {\n\tvar ctor;\n\tvar out;\n\tvar i;\n\n\tctor = bufferCtors( dtype );\n\tif ( dtype === 'generic') {\n\t\tout = [];\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tout.push( buffer[ i ] );\n\t\t}\n\t} else if ( dtype === 'binary' ) {\n\t\tout = allocUnsafe( len );\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tout[ i ] = buffer[ i ];\n\t\t}\n\t} else {\n\t\tout = new ctor( len );\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tout[ i ] = buffer[ i ]; // TODO: wrap and use accessors here and above\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = castBuffer;\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 arraylike2object = require( '@stdlib/array/base/arraylike2object' );\nvar castReturn = require( '@stdlib/complex/base/cast-return' );\nvar complexCtors = require( '@stdlib/complex/ctors' );\nvar bufferCtors = require( './../../base/buffer-ctors' );\nvar allocUnsafe = require( '@stdlib/buffer/alloc-unsafe' );\nvar ndarray = require( './../../base/ctor' );\nvar getDType = require( './../../dtype' );\nvar getShape = require( './../../shape' );\nvar getStrides = require( './../../strides' );\nvar getOffset = require( './../../offset' );\nvar getOrder = require( './../../order' );\nvar getData = require( './../../data-buffer' );\n\n\n// FUNCTIONS //\n\n/**\n* Copies a \"generic\" ndarray view.\n*\n* @private\n* @param {ndarray} arr - input ndarray\n* @returns {Array} output data buffer\n*/\nfunction generic( arr ) {\n\tvar len;\n\tvar out;\n\tvar i;\n\n\tlen = arr.length;\n\tout = [];\n\tfor ( i = 0; i < len; i++ ) {\n\t\tout.push( arr.iget( i ) ); // as output buffer is generic, should work with both real- and complex-valued ndarrays\n\t}\n\treturn out;\n}\n\n/**\n* Copies a \"binary\" ndarray view.\n*\n* @private\n* @param {ndarray} arr - input ndarray\n* @returns {Array} output data buffer\n*/\nfunction binary( arr ) {\n\tvar len;\n\tvar out;\n\tvar i;\n\n\tlen = arr.length;\n\tout = allocUnsafe( len );\n\tfor ( i = 0; i < len; i++ ) {\n\t\tout[ i ] = arr.iget( i ); // we're assuming that we're doing something sensible here (e.g., not trying to cast a complex-valued ndarray to a \"binary\" ndarray or a double-precision floating-point ndarray to binary, etc)\n\t}\n\treturn out;\n}\n\n/**\n* Copies a \"typed\" ndarray view.\n*\n* @private\n* @param {ndarray} arr - input ndarray\n* @param {string} dtype - data type\n* @returns {Array} output data buffer\n*/\nfunction typed( arr, dtype ) {\n\tvar ctor;\n\tvar len;\n\tvar out;\n\tvar set;\n\tvar fcn;\n\tvar o;\n\tvar i;\n\n\tctor = bufferCtors( dtype );\n\tlen = arr.length;\n\tout = new ctor( len );\n\n\t// If the output data buffer is a complex number array, we need to use accessors...\n\to = arraylike2object( out );\n\tif ( o.accessorProtocol ) {\n\t\tset = o.accessors[ 1 ];\n\t\tfcn = castReturn( wrapper, 1, complexCtors( dtype ) );\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tset( out, i, fcn( i ) ); // we're assuming that we're doing something sensible here (e.g., not trying to cast arbitrary objects to complex numbers, etc)\n\t\t}\n\t} else {\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tout[ i ] = arr.iget( i ); // we're assuming that we're doing something sensible here (e.g., not trying to cast an ndarray containing generic objects to a double-precision floating-point array or a complex-valued ndarray to a real-valued ndarray, etc)\n\t\t}\n\t}\n\treturn out;\n\n\t/**\n\t* Returns the ndarray element specified by a provided linear index.\n\t*\n\t* @private\n\t* @param {NonNegativeInteger} i - linear index\n\t* @returns {*} value\n\t*/\n\tfunction wrapper( i ) {\n\t\treturn arr.iget( i );\n\t}\n}\n\n\n// MAIN //\n\n/**\n* Copies an ndarray view to a data buffer.\n*\n* @private\n* @param {ndarray} arr - input ndarray\n* @param {string} dtype - data type\n* @returns {(Array|TypedArray|Buffer)} output data buffer\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n*\n* var buffer = [ 1.0, 2.0, 3.0 ];\n* var shape = [ 3 ];\n* var strides = [ -1 ];\n* var vec = ndarray( 'generic', buffer, shape, strides, 2, 'row-major' );\n*\n* var b = copyView( vec, 'float64' );\n* // returns [ 3.0, 2.0, 1.0 ]\n*/\nfunction copyView( arr, dtype ) {\n\tvar x;\n\n\t// Create a new \"base\" view, thus ensuring we have an `.iget` method and associated meta data...\n\tx = new ndarray( getDType( arr ), getData( arr ), getShape( arr ), getStrides( arr ), getOffset( arr ), getOrder( arr ) ); // eslint-disable-line max-len\n\n\tif ( dtype === 'generic') {\n\t\treturn generic( x );\n\t}\n\tif ( dtype === 'binary' ) {\n\t\treturn binary( x );\n\t}\n\treturn typed( x, dtype );\n}\n\n\n// EXPORTS //\n\nmodule.exports = copyView;\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* Prepends singleton dimensions in order to satisfy a minimum number of dimensions.\n*\n* @private\n* @param {NonNegativeInteger} ndims - number of dimensions\n* @param {Array} shape - array dimensions\n* @param {NonNegativeInteger} ndmin - minimum number of dimensions\n* @returns {Array} output shape array\n*/\nfunction expandShape( ndims, shape, ndmin ) {\n\tvar out;\n\tvar i;\n\n\tout = [];\n\tfor ( i = 0; i < ndmin-ndims; i++ ) {\n\t\tout.push( 1 );\n\t}\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tout.push( shape[ i ] );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = expandShape;\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 abs = require( '@stdlib/math/base/special/abs' );\n\n\n// MAIN //\n\n/**\n* Expands a strides array to accommodate an expanded array shape (i.e., an array shape with prepended singleton dimensions).\n*\n* @private\n* @param {NonNegativeInteger} ndims - number of dimensions\n* @param {Array} shape - expanded array shape\n* @param {Array} strides - strides array\n* @param {string} order - memory layout order\n* @returns {Array} output strides array\n*\n* @example\n* var out = expandStrides( 4, [ 1, 1, 2, 2 ], [ 1, 2 ], 'column-major' );\n* // returns [ 1, 1, 1, 2 ]\n*\n* @example\n* var out = expandStrides( 4, [ 1, 1, 2, 2 ], [ 2, 1 ], 'row-major' );\n* // returns [ 4, 4, 2, 1 ]\n*/\nfunction expandStrides( ndims, shape, strides, order ) {\n\tvar out;\n\tvar N;\n\tvar s;\n\tvar i;\n\tvar j;\n\n\tN = strides.length;\n\tj = ndims - N;\n\tout = [];\n\tif ( order === 'row-major' ) {\n\t\ts = abs( strides[ 0 ] ) * shape[ j ]; // at `j` is the size of the first non-prepended dimension\n\t\tfor ( i = 0; i < j; i++ ) {\n\t\t\tout.push( s );\n\t\t}\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tout.push( strides[ i ] );\n\t\t}\n\t} else { // column-major\n\t\tfor ( i = 0; i < j; i++ ) {\n\t\t\tout.push( 1 );\n\t\t}\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tout.push( strides[ i ] );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = expandStrides;\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 hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar isObject = require( '@stdlib/assert/is-plain-object' );\nvar isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive;\nvar isArray = require( '@stdlib/assert/is-array' );\nvar isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );\nvar shape2strides = require( './../../base/shape2strides' );\nvar strides2offset = require( './../../base/strides2offset' );\nvar strides2order = require( './../../base/strides2order' );\nvar numel = require( './../../base/numel' );\nvar ndarray = require( './../../ctor' );\nvar isDataType = require( './../../base/assert/is-data-type' );\nvar isOrder = require( './../../base/assert/is-order' );\nvar isCastingMode = require( './../../base/assert/is-casting-mode' );\nvar isAllowedCast = require( './../../base/assert/is-allowed-data-type-cast' );\nvar createBuffer = require( './../../base/buffer' );\nvar getBufferDType = require( './../../base/buffer-dtype' );\nvar getDType = require( './../../dtype' );\nvar getShape = require( './../../shape' );\nvar getStrides = require( './../../strides' );\nvar getOffset = require( './../../offset' );\nvar getOrder = require( './../../order' );\nvar getData = require( './../../data-buffer' );\nvar arrayShape = require( '@stdlib/array/shape' );\nvar flatten = require( '@stdlib/array/base/flatten' );\nvar format = require( '@stdlib/string/format' );\nvar isArrayLikeObject = require( './is_array_like_object.js' );\nvar getDefaults = require( './defaults.js' );\nvar castBuffer = require( './cast_buffer.js' );\nvar copyView = require( './copy_view.js' );\nvar expandShape = require( './expand_shape.js' );\nvar expandStrides = require( './expand_strides.js' );\n\n\n// VARIABLES //\n\nvar defaults = getDefaults();\n\n\n// MAIN //\n\n/**\n* Returns a multidimensional array.\n*\n* @param {(ArrayLikeObject|TypedArrayLike|Buffer|ndarrayLike)} [buffer] - data source\n* @param {Options} [options] - function options\n* @param {(ArrayLikeObject|TypedArrayLike|Buffer|ndarrayLike)} [options.buffer] - data source\n* @param {string} [options.dtype=\"float64\"] - underlying storage data type (if the input data is not of the same type, this option specifies the data type to which to cast the input data)\n* @param {string} [options.order=\"row-major\"] - specifies the memory layout of the array as either row-major (C-style) or column-major (Fortran-style)\n* @param {NonNegativeIntegerArray} [options.shape] - array shape\n* @param {string} [options.mode=\"throw\"] - specifies how to handle indices which exceed array dimensions\n* @param {StringArray} [options.submode=[\"throw\"]] - specifies how to handle subscripts which exceed array dimensions on a per dimension basis\n* @param {boolean} [options.copy=false] - boolean indicating whether to copy source data to a new data buffer\n* @param {boolean} [options.flatten=true] - boolean indicating whether to automatically flatten generic array data sources\n* @param {NonNegativeInteger} [options.ndmin=0] - minimum number of dimensions\n* @param {string} [options.casting=\"safe\"] - casting rule used to determine what constitutes an acceptable cast\n* @param {boolean} [options.readonly=false] - boolean indicating if an array should be read-only\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {Error} must provide either an array shape, data source, or both\n* @throws {Error} invalid cast\n* @throws {RangeError} data source must be compatible with specified meta data\n* @returns {ndarray} ndarray instance\n*\n* @example\n* var arr = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var v = arr.get( 0, 0 );\n* // returns 1\n*\n* @example\n* var opts = {\n* 'dtype': 'generic',\n* 'flatten': false\n* };\n*\n* var arr = array( [ [ 1, 2 ], [ 3, 4 ] ], opts );\n* // returns \n*\n* var v = arr.get( 0 );\n* // returns [ 1, 2 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var opts = {\n* 'shape': [ 2, 2 ]\n* };\n*\n* var arr = array( new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ), opts );\n* // returns \n*\n* var v = arr.get( 0, 0 );\n* // returns 1.0\n*/\nfunction array() {\n\tvar options;\n\tvar strides;\n\tvar buffer;\n\tvar offset;\n\tvar order;\n\tvar dtype;\n\tvar btype;\n\tvar shape;\n\tvar ndims;\n\tvar nopts;\n\tvar opts;\n\tvar osh;\n\tvar len;\n\tvar ord;\n\tvar FLG;\n\n\tif ( arguments.length === 1 ) {\n\t\tif ( isArrayLikeObject( arguments[ 0 ] ) ) {\n\t\t\tbuffer = arguments[ 0 ];\n\t\t\toptions = {};\n\t\t} else {\n\t\t\toptions = arguments[ 0 ];\n\t\t\tif ( !isObject( options ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide either a valid data source, options argument, or both. Value: `%s`.', options ) );\n\t\t\t}\n\t\t\tif ( hasOwnProp( options, 'buffer' ) ) {\n\t\t\t\tbuffer = options.buffer;\n\t\t\t\tif ( !isArrayLikeObject( buffer ) ) { // weak test\n\t\t\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be an array-like object, typed-array-like, a Buffer, or an ndarray. Option: `%s`.', 'buffer', buffer ) );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {\n\t\tbuffer = arguments[ 0 ];\n\t\tif ( !isArrayLikeObject( buffer ) ) { // weak test\n\t\t\tthrow new TypeError( format( 'invalid option. Data source must be an array-like object, typed-array-like, a Buffer, or an ndarray. Value: `%s`.', buffer ) );\n\t\t}\n\t\toptions = arguments[ 1 ];\n\t\tif ( !isObject( options ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t\t}\n\t\t// Note: we ignore whether `options` has a `buffer` property\n\t}\n\tif ( buffer ) {\n\t\tif ( isndarrayLike( buffer ) ) {\n\t\t\tbtype = getDType( buffer );\n\t\t\tFLG = true;\n\t\t} else {\n\t\t\tbtype = getBufferDType( buffer );\n\t\t\tFLG = false;\n\t\t}\n\t}\n\tnopts = {};\n\topts = {};\n\n\t// Validate some options before others...\n\tif ( hasOwnProp( options, 'casting' ) ) {\n\t\topts.casting = options.casting;\n\t\tif ( !isCastingMode( opts.casting ) ) {\n\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a recognized casting mode. Option: `%s`.', 'casting', opts.casting ) );\n\t\t}\n\t} else {\n\t\topts.casting = defaults.casting;\n\t}\n\tif ( hasOwnProp( options, 'flatten' ) ) {\n\t\topts.flatten = options.flatten;\n\t\tif ( !isBoolean( opts.flatten ) ) {\n\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'flatten', opts.flatten ) );\n\t\t}\n\t} else {\n\t\topts.flatten = defaults.flatten;\n\t}\n\tif ( hasOwnProp( options, 'ndmin' ) ) {\n\t\topts.ndmin = options.ndmin;\n\t\tif ( !isNonNegativeInteger( opts.ndmin ) ) {\n\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a nonnegative integer. Option: `%s`.', 'ndmin', opts.ndmin ) );\n\t\t}\n\t\t// TODO: validate that minimum number of dimensions does not exceed the maximum number of possible dimensions (in theory, infinite; in practice, determined by max array length; see https://github.com/stdlib-js/stdlib/blob/ac350059877c036640775d6b30d0e98e840d07cf/lib/node_modules/%40stdlib/ndarray/ctor/lib/main.js#L57)\n\t} else {\n\t\topts.ndmin = defaults.ndmin;\n\t}\n\n\t// Validate the remaining options...\n\tif ( hasOwnProp( options, 'dtype' ) ) {\n\t\tdtype = options.dtype;\n\t\tif ( !isDataType( dtype ) ) {\n\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a recognized data type. Option: `%s`.', 'dtype', dtype ) );\n\t\t}\n\t\tif ( btype && !isAllowedCast( btype, dtype, opts.casting ) ) {\n\t\t\tthrow new Error( format( 'invalid option. Data type cast is not allowed. Casting mode: `%s`. From: `%s`. To: `%s`.', opts.casting, btype, dtype ) );\n\t\t}\n\t} else if ( btype ) {\n\t\t// TODO: reconcile difference in behavior when provided a generic array and no `dtype` option. Currently, we cast here, but do not allow casting a generic array (by default) when explicitly providing a `dtype` option.\n\n\t\t// Only cast generic array data sources when not provided an ndarray...\n\t\tif ( !FLG && btype === 'generic' ) {\n\t\t\tdtype = defaults.dtype;\n\t\t} else {\n\t\t\tdtype = btype;\n\t\t}\n\t} else {\n\t\tdtype = defaults.dtype;\n\t}\n\tif ( hasOwnProp( options, 'order' ) ) {\n\t\torder = options.order;\n\t\tif ( order === 'any' || order === 'same' ) {\n\t\t\tif ( FLG ) {\n\t\t\t\t// If the user indicated that \"any\" order suffices (meaning the user does not care about ndarray order), then we use the default order, unless the input ndarray is either unequivocally \"row-major\" or \"column-major\" or configured as such....\n\t\t\t\tif ( order === 'any' ) {\n\t\t\t\t\t// Compute the layout order in order to ascertain whether an ndarray can be considered both \"row-major\" and \"column-major\":\n\t\t\t\t\tord = strides2order( getStrides( buffer ) );\n\n\t\t\t\t\t// If the ndarray can be considered both \"row-major\" and \"column-major\", then use the default order; otherwise, use the ndarray's stated layout order...\n\t\t\t\t\tif ( ord === 3 ) {\n\t\t\t\t\t\torder = defaults.order;\n\t\t\t\t\t} else {\n\t\t\t\t\t\torder = getOrder( buffer );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Otherwise, use the same order as the provided ndarray...\n\t\t\t\telse if ( order === 'same' ) {\n\t\t\t\t\torder = getOrder( buffer );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\torder = defaults.order;\n\t\t\t}\n\t\t} else if ( !isOrder( order ) ) {\n\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a recognized order. Option: `%s`.', 'order', order ) );\n\t\t}\n\t} else {\n\t\torder = defaults.order;\n\t}\n\tif ( hasOwnProp( options, 'mode' ) ) {\n\t\tnopts.mode = options.mode;\n\t} else {\n\t\tnopts.mode = defaults.mode;\n\t}\n\tif ( hasOwnProp( options, 'submode' ) ) {\n\t\tnopts.submode = options.submode;\n\t} else {\n\t\tnopts.submode = [ nopts.mode ];\n\t}\n\tif ( hasOwnProp( options, 'readonly' ) ) {\n\t\tnopts.readonly = options.readonly;\n\t} else {\n\t\tnopts.readonly = defaults.readonly;\n\t}\n\tif ( hasOwnProp( options, 'copy' ) ) {\n\t\topts.copy = options.copy;\n\t\tif ( !isBoolean( opts.copy ) ) {\n\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'copy', opts.copy ) );\n\t\t}\n\t} else {\n\t\topts.copy = defaults.copy;\n\t}\n\t// If not provided a shape, infer from a provided data source...\n\tif ( hasOwnProp( options, 'shape' ) ) {\n\t\tshape = options.shape;\n\t\tif ( !isArrayLikeObject( shape ) ) { // weak test\n\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be an array-like object containing nonnegative integers. Option: `%s`.', 'shape', shape ) );\n\t\t}\n\t\tndims = shape.length;\n\t\tlen = numel( shape );\n\t} else if ( buffer ) {\n\t\tif ( FLG ) {\n\t\t\tshape = getShape( buffer );\n\t\t\tndims = shape.length;\n\t\t\tlen = numel( shape );\n\t\t} else if ( opts.flatten && isArray( buffer ) ) {\n\t\t\tshape = arrayShape( buffer );\n\t\t\tosh = shape; // cache a reference to the inferred shape\n\t\t\tndims = shape.length;\n\t\t\tlen = numel( shape );\n\t\t} else {\n\t\t\tndims = 1;\n\t\t\tlen = buffer.length;\n\t\t\tshape = [ len ]; // assume a 1-dimensional array (vector)\n\t\t}\n\t} else {\n\t\tthrow new Error( 'invalid arguments. Must provide either a data source, array shape, or both.' );\n\t}\n\t// Adjust the array shape to satisfy the minimum number of dimensions...\n\tif ( ndims < opts.ndmin ) {\n\t\tshape = expandShape( ndims, shape, opts.ndmin );\n\t\tndims = opts.ndmin;\n\t}\n\t// If not provided a data buffer, create it; otherwise, see if we need to cast a provided data buffer to another data type or perform a copy...\n\tif ( FLG ) {\n\t\tif ( numel( buffer.shape ) !== len ) {\n\t\t\tthrow new RangeError( 'invalid arguments. Array shape is incompatible with provided data source. Number of data source elements does not match array shape.' );\n\t\t}\n\t\tif ( btype !== dtype || opts.copy ) {\n\t\t\tbuffer = copyView( buffer, dtype );\n\t\t} else {\n\t\t\tstrides = getStrides( buffer );\n\t\t\toffset = getOffset( buffer );\n\t\t\tbuffer = getData( buffer );\n\t\t\tif ( strides.length < ndims ) {\n\t\t\t\t// Account for augmented dimensions (note: expanding the strides array to account for prepended singleton dimensions does **not** affect the index offset):\n\t\t\t\tstrides = expandStrides( ndims, shape, strides, order );\n\t\t\t}\n\t\t}\n\t} else if ( buffer ) {\n\t\tif ( btype === 'generic' && opts.flatten ) {\n\t\t\tbuffer = flatten( buffer, osh || arrayShape( buffer ), order === 'column-major' );\n\t\t}\n\t\tif ( buffer.length !== len ) {\n\t\t\tthrow new RangeError( 'invalid arguments. Array shape is incompatible with provided data source. Number of data source elements does not match array shape.' );\n\t\t}\n\t\tif ( btype !== dtype || opts.copy ) {\n\t\t\tbuffer = castBuffer( buffer, len, dtype );\n\t\t}\n\t} else {\n\t\tbuffer = createBuffer( dtype, len );\n\t}\n\t// If we have yet to determine array strides, we assume that we can compute the strides, along with the index offset, for a **contiguous** data source based solely on the array shape and specified memory layout order...\n\tif ( strides === void 0 ) {\n\t\tstrides = shape2strides( shape, order );\n\t\toffset = strides2offset( shape, strides );\n\t}\n\treturn new ndarray( dtype, buffer, shape, strides, offset, order, nopts );\n}\n\n\n// EXPORTS //\n\nmodule.exports = array;\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* Multidimensional array.\n*\n* @module @stdlib/ndarray/array\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var arr = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var v = arr.get( 0, 0 );\n* // returns 1\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var opts = {\n* 'dtype': 'generic',\n* 'flatten': false\n* };\n*\n* var arr = array( [ [ 1, 2 ], [ 3, 4 ] ], opts );\n* // returns \n*\n* var v = arr.get( 0 );\n* // returns [ 1, 2 ]\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var opts = {\n* 'shape': [ 2, 2 ]\n* };\n*\n* var arr = array( new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ), opts );\n* // returns \n*\n* var v = arr.get( 0, 0 );\n* // returns 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 numel = require( './../../../../base/numel' );\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if a buffer length is compatible with a provided shape array.\n*\n* @param {NonNegativeInteger} len - buffer length\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {boolean} boolean indicating if a buffer length is compatible with a provided shape array\n*\n* @example\n* var shape = [ 2, 2 ];\n*\n* var bool = isBufferLengthCompatibleShape( 4, shape );\n* // returns true\n*\n* @example\n* var shape = [ 2, 2 ];\n*\n* var bool = isBufferLengthCompatibleShape( 3, shape );\n* // returns false\n*/\nfunction isBufferLengthCompatibleShape( len, shape ) { // eslint-disable-line id-length\n\treturn ( len >= numel( shape ) );\n}\n\n\n// EXPORTS //\n\nmodule.exports = isBufferLengthCompatibleShape;\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 boolean indicating if a buffer length is compatible with a provided shape array.\n*\n* @module @stdlib/ndarray/base/assert/is-buffer-length-compatible-shape\n*\n* @example\n* var isBufferLengthCompatibleShape = require( '@stdlib/ndarray/base/assert/is-buffer-length-compatible-shape' );\n*\n* var shape = [ 2, 2 ];\n*\n* var bool = isBufferLengthCompatibleShape( 10, shape );\n* // returns true\n*\n* @example\n* var isBufferLengthCompatibleShape = require( '@stdlib/ndarray/base/assert/is-buffer-length-compatible-shape' );\n*\n* var shape = [ 2, 2 ];\n*\n* var bool = isBufferLengthCompatibleShape( 3, shape );\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) 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 abs = require( '@stdlib/math/base/special/abs' );\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if an array is column-major based on a provided stride array.\n*\n* @param {IntegerArray} strides - stride array\n* @returns {boolean} boolean indicating if an array is column-major\n*\n* @example\n* var bool = isColumnMajor( [ 1, 2 ] );\n* // returns true\n*\n* bool = isColumnMajor( [ 2, 1 ] );\n* // returns false\n*/\nfunction isColumnMajor( strides ) {\n\tvar ndims;\n\tvar s1;\n\tvar s2;\n\tvar i;\n\n\tndims = strides.length;\n\tif ( ndims === 0 ) {\n\t\treturn false;\n\t}\n\ts1 = abs( strides[ 0 ] );\n\tfor ( i = 1; i < ndims; i++ ) {\n\t\ts2 = abs( strides[ i ] );\n\t\tif ( s2 < s1 ) {\n\t\t\treturn false;\n\t\t}\n\t\ts1 = s2;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nmodule.exports = isColumnMajor;\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* Given a stride array, determine whether an array is column-major.\n*\n* @module @stdlib/ndarray/base/assert/is-column-major\n*\n* @example\n* var isColumnMajor = require( '@stdlib/ndarray/base/assert/is-column-major' );\n*\n* var bool = isColumnMajor( [ 1, 2 ] );\n* // returns true\n*\n* bool = isColumnMajor( [ 2, 1 ] );\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) 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 numel = require( './../../../../base/numel' );\nvar minmax = require( './../../../../base/minmax-view-buffer-index' );\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if an array is compatible with a single memory segment.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @returns {boolean} boolean indicating if an array is compatible with a single memory segment\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var bool = isSingleSegmentCompatible( shape, strides, offset );\n* // returns true\n*\n* @example\n* var shape = [ 10 ];\n* var strides = [ 3 ];\n* var offset = 0;\n*\n* var bool = isSingleSegmentCompatible( shape, strides, offset );\n* // returns false\n*/\nfunction isSingleSegmentCompatible( shape, strides, offset ) {\n\tvar len;\n\tvar buf;\n\n\t// Compute the total number of elements:\n\tlen = numel( shape );\n\tif ( len === 0 ) {\n\t\treturn false;\n\t}\n\t// Determine the minimum and maximum linear indices which are accessible by the array view:\n\tbuf = minmax( shape, strides, offset );\n\n\treturn ( len === ( buf[1]-buf[0]+1 ) );\n}\n\n\n// EXPORTS //\n\nmodule.exports = isSingleSegmentCompatible;\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 boolean indicating if an array is compatible with a single memory segment.\n*\n* @module @stdlib/ndarray/base/assert/is-single-segment-compatible\n*\n* @example\n* var isSingleSegmentCompatible = require( '@stdlib/ndarray/base/assert/is-single-segment-compatible' );\n*\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var bool = isSingleSegmentCompatible( shape, strides, offset );\n* // returns true\n*\n* @example\n* var isSingleSegmentCompatible = require( '@stdlib/ndarray/base/assert/is-single-segment-compatible' );\n*\n* var shape = [ 10 ];\n* var strides = [ 3 ];\n* var offset = 0;\n*\n* var bool = isSingleSegmentCompatible( shape, strides, offset );\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) 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 isSingleSegmentCompatible = require( './../../../../base/assert/is-single-segment-compatible' );\nvar iterationOrder = require( './../../../../base/iteration-order' );\nvar isColumnMajor = require( './../../../../base/assert/is-column-major' );\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if an array is column-major contiguous.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @returns {boolean} boolean indicating if an array is column-major contiguous\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ 1, 2 ];\n* var offset = 0;\n*\n* var bool = isColumnMajorContiguous( shape, strides, offset );\n* // returns true\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ 1, -2 ];\n* var offset = 2;\n*\n* var bool = isColumnMajorContiguous( shape, strides, offset );\n* // returns false\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 2 ];\n* var offset = 0;\n*\n* var bool = isColumnMajorContiguous( shape, strides, offset );\n* // returns false\n*/\nfunction isColumnMajorContiguous( shape, strides, offset ) {\n\treturn (\n\t\titerationOrder( strides ) !== 0 &&\n\t\tisColumnMajor( strides ) &&\n\t\tisSingleSegmentCompatible( shape, strides, offset )\n\t);\n}\n\n\n// EXPORTS //\n\nmodule.exports = isColumnMajorContiguous;\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 if an array is column-major contiguous.\n*\n* @module @stdlib/ndarray/base/assert/is-column-major-contiguous\n*\n* @example\n* var isColumnMajorContiguous = require( '@stdlib/ndarray/base/assert/is-column-major-contiguous' );\n*\n* var shape = [ 2, 2 ];\n* var strides = [ 1, 2 ];\n* var offset = 0;\n*\n* var bool = isColumnMajorContiguous( shape, strides, offset );\n* // returns true\n*\n* @example\n* var isColumnMajorContiguous = require( '@stdlib/ndarray/base/assert/is-column-major-contiguous' );\n*\n* var shape = [ 2, 2 ];\n* var strides = [ 1, -2 ];\n* var offset = 2;\n*\n* var bool = isColumnMajorContiguous( shape, strides, offset );\n* // returns false\n*\n* @example\n* var isColumnMajorContiguous = require( '@stdlib/ndarray/base/assert/is-column-major-contiguous' );\n*\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 2 ];\n* var offset = 0;\n*\n* var bool = isColumnMajorContiguous( shape, strides, offset );\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 contains = require( '@stdlib/array/base/assert/contains' ).factory;\nvar dtypes = require( './../../../../dtypes' );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray complex-valued floating-point data type.\n*\n* @name isComplexFloatingPointDataType\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray complex-valued floating-point data type\n*\n* @example\n* var bool = isComplexFloatingPointDataType( 'binary' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'complex64' );\n* // returns true\n*\n* bool = isComplexFloatingPointDataType( 'complex128' );\n* // returns true\n*\n* bool = isComplexFloatingPointDataType( 'float32' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'float64' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'generic' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'int16' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'int32' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'int8' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint16' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint32' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint8' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint8c' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'foo' );\n* // returns false\n*/\nvar isComplexFloatingPointDataType = contains( dtypes( 'complex_floating_point' ) ); // eslint-disable-line id-length\n\n\n// EXPORTS //\n\nmodule.exports = isComplexFloatingPointDataType;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 whether an input value is a supported ndarray complex-valued floating-point data type.\n*\n* @module @stdlib/ndarray/base/assert/is-complex-floating-point-data-type\n*\n* @example\n* var isComplexFloatingPointDataType = require( '@stdlib/ndarray/base/assert/is-complex-floating-point-data-type' );\n*\n* var bool = isComplexFloatingPointDataType( 'binary' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'complex64' );\n* // returns true\n*\n* bool = isComplexFloatingPointDataType( 'complex128' );\n* // returns true\n*\n* bool = isComplexFloatingPointDataType( 'float32' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'float64' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'generic' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'int16' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'int32' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'int8' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint16' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint32' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint8' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'uint8c' );\n* // returns false\n*\n* bool = isComplexFloatingPointDataType( 'foo' );\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) 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 isSingleSegmentCompatible = require( './../../../../base/assert/is-single-segment-compatible' );\nvar iterationOrder = require( './../../../../base/iteration-order' );\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if an array is contiguous.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @returns {boolean} boolean indicating if an array is contiguous\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var bool = isContiguous( shape, strides, offset );\n* // returns true\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ -2, 1 ];\n* var offset = 2;\n*\n* var bool = isContiguous( shape, strides, offset );\n* // returns false\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 2 ];\n* var offset = 0;\n*\n* var bool = isContiguous( shape, strides, offset );\n* // returns false\n*/\nfunction isContiguous( shape, strides, offset ) {\n\treturn (\n\t\titerationOrder( strides ) !== 0 &&\n\t\tisSingleSegmentCompatible( shape, strides, offset )\n\t);\n}\n\n\n// EXPORTS //\n\nmodule.exports = isContiguous;\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 if an array is contiguous.\n*\n* @module @stdlib/ndarray/base/assert/is-contiguous\n*\n* @example\n* var isContiguous = require( '@stdlib/ndarray/base/assert/is-contiguous' );\n*\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var bool = isContiguous( shape, strides, offset );\n* // returns true\n*\n* @example\n* var isContiguous = require( '@stdlib/ndarray/base/assert/is-contiguous' );\n*\n* var shape = [ 2, 2 ];\n* var strides = [ -2, 1 ];\n* var offset = 2;\n*\n* var bool = isContiguous( shape, strides, offset );\n* // returns false\n*\n* @example\n* var isContiguous = require( '@stdlib/ndarray/base/assert/is-contiguous' );\n*\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 2 ];\n* var offset = 0;\n*\n* var bool = isContiguous( shape, strides, offset );\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 contains = require( '@stdlib/array/base/assert/contains' ).factory;\nvar dtypes = require( './../../../../dtypes' );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray floating-point data type.\n*\n* @name isFloatingPointDataType\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray floating-point data type\n*\n* @example\n* var bool = isFloatingPointDataType( 'binary' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'float32' );\n* // returns true\n*\n* bool = isFloatingPointDataType( 'float64' );\n* // returns true\n*\n* bool = isFloatingPointDataType( 'generic' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'int16' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'int32' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'int8' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'uint16' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'uint32' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'uint8' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'uint8c' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'foo' );\n* // returns false\n*/\nvar isFloatingPointDataType = contains( dtypes( 'floating_point' ) );\n\n\n// EXPORTS //\n\nmodule.exports = isFloatingPointDataType;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 whether an input value is a supported ndarray floating-point data type.\n*\n* @module @stdlib/ndarray/base/assert/is-floating-point-data-type\n*\n* @example\n* var isFloatingPointDataType = require( '@stdlib/ndarray/base/assert/is-floating-point-data-type' );\n*\n* var bool = isFloatingPointDataType( 'binary' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'float32' );\n* // returns true\n*\n* bool = isFloatingPointDataType( 'float64' );\n* // returns true\n*\n* bool = isFloatingPointDataType( 'generic' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'int16' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'int32' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'int8' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'uint16' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'uint32' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'uint8' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'uint8c' );\n* // returns false\n*\n* bool = isFloatingPointDataType( 'foo' );\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 contains = require( '@stdlib/array/base/assert/contains' ).factory;\nvar dtypes = require( './../../../../dtypes' );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray integer data type.\n*\n* @name isIntegerDataType\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray integer data type\n*\n* @example\n* var bool = isIntegerDataType( 'binary' );\n* // returns false\n*\n* bool = isIntegerDataType( 'float32' );\n* // returns false\n*\n* bool = isIntegerDataType( 'float64' );\n* // returns false\n*\n* bool = isIntegerDataType( 'generic' );\n* // returns false\n*\n* bool = isIntegerDataType( 'int16' );\n* // returns true\n*\n* bool = isIntegerDataType( 'int32' );\n* // returns true\n*\n* bool = isIntegerDataType( 'int8' );\n* // returns true\n*\n* bool = isIntegerDataType( 'uint16' );\n* // returns true\n*\n* bool = isIntegerDataType( 'uint32' );\n* // returns true\n*\n* bool = isIntegerDataType( 'uint8' );\n* // returns true\n*\n* bool = isIntegerDataType( 'uint8c' );\n* // returns true\n*\n* bool = isIntegerDataType( 'foo' );\n* // returns false\n*/\nvar isIntegerDataType = contains( dtypes( 'integer' ) );\n\n\n// EXPORTS //\n\nmodule.exports = isIntegerDataType;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 whether an input value is a supported ndarray integer data type.\n*\n* @module @stdlib/ndarray/base/assert/is-integer-data-type\n*\n* @example\n* var isIntegerDataType = require( '@stdlib/ndarray/base/assert/is-integer-data-type' );\n*\n* var bool = isIntegerDataType( 'binary' );\n* // returns false\n*\n* bool = isIntegerDataType( 'float32' );\n* // returns false\n*\n* bool = isIntegerDataType( 'float64' );\n* // returns false\n*\n* bool = isIntegerDataType( 'generic' );\n* // returns false\n*\n* bool = isIntegerDataType( 'int16' );\n* // returns true\n*\n* bool = isIntegerDataType( 'int32' );\n* // returns true\n*\n* bool = isIntegerDataType( 'int8' );\n* // returns true\n*\n* bool = isIntegerDataType( 'uint16' );\n* // returns true\n*\n* bool = isIntegerDataType( 'uint32' );\n* // returns true\n*\n* bool = isIntegerDataType( 'uint8' );\n* // returns true\n*\n* bool = isIntegerDataType( 'uint8c' );\n* // returns true\n*\n* bool = isIntegerDataType( 'foo' );\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 contains = require( '@stdlib/array/base/assert/contains' ).factory;\nvar dtypes = require( './../../../../dtypes' );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray numeric data type.\n*\n* @name isNumericDataType\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray numeric data type\n*\n* @example\n* var bool = isNumericDataType( 'binary' );\n* // returns false\n*\n* bool = isNumericDataType( 'float32' );\n* // returns true\n*\n* bool = isNumericDataType( 'float64' );\n* // returns true\n*\n* bool = isNumericDataType( 'generic' );\n* // returns false\n*\n* bool = isNumericDataType( 'int16' );\n* // returns true\n*\n* bool = isNumericDataType( 'int32' );\n* // returns true\n*\n* bool = isNumericDataType( 'int8' );\n* // returns true\n*\n* bool = isNumericDataType( 'uint16' );\n* // returns true\n*\n* bool = isNumericDataType( 'uint32' );\n* // returns true\n*\n* bool = isNumericDataType( 'uint8' );\n* // returns true\n*\n* bool = isNumericDataType( 'uint8c' );\n* // returns true\n*\n* bool = isNumericDataType( 'foo' );\n* // returns false\n*/\nvar isNumericDataType = contains( dtypes( 'numeric' ) );\n\n\n// EXPORTS //\n\nmodule.exports = isNumericDataType;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 whether an input value is a supported ndarray numeric data type.\n*\n* @module @stdlib/ndarray/base/assert/is-numeric-data-type\n*\n* @example\n* var isNumericDataType = require( '@stdlib/ndarray/base/assert/is-numeric-data-type' );\n*\n* var bool = isNumericDataType( 'binary' );\n* // returns false\n*\n* bool = isNumericDataType( 'float32' );\n* // returns true\n*\n* bool = isNumericDataType( 'float64' );\n* // returns true\n*\n* bool = isNumericDataType( 'generic' );\n* // returns false\n*\n* bool = isNumericDataType( 'int16' );\n* // returns true\n*\n* bool = isNumericDataType( 'int32' );\n* // returns true\n*\n* bool = isNumericDataType( 'int8' );\n* // returns true\n*\n* bool = isNumericDataType( 'uint16' );\n* // returns true\n*\n* bool = isNumericDataType( 'uint32' );\n* // returns true\n*\n* bool = isNumericDataType( 'uint8' );\n* // returns true\n*\n* bool = isNumericDataType( 'uint8c' );\n* // returns true\n*\n* bool = isNumericDataType( 'foo' );\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// MAIN //\n\n/**\n* Tests whether an ndarray is read-only.\n*\n* @param {ndarray} arr - input ndarray\n* @returns {boolean} boolean indicating whether an ndarray is read-only\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var x = array( [ 1, 2, 3, 4 ], {\n* 'readonly': true\n* });\n* var bool = isReadOnly( x );\n* // returns true\n*\n* x = array( [ 1, 2, 3, 4 ] );\n* bool = isReadOnly( x );\n* // returns false\n*/\nfunction isReadOnly( arr ) {\n\tvar flags = arr.flags;\n\treturn ( flags && flags.READONLY === true );\n}\n\n\n// EXPORTS //\n\nmodule.exports = isReadOnly;\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 whether an ndarray is read-only.\n*\n* @module @stdlib/ndarray/base/assert/is-read-only\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n* var isReadOnly = require( '@stdlib/ndarray/base/assert/is-read-only' );\n*\n* var x = array( [ 1, 2, 3, 4 ], {\n* 'readonly': true\n* });\n* var bool = isReadOnly( x );\n* // returns true\n*\n* x = array( [ 1, 2, 3, 4 ] );\n* bool = isReadOnly( x );\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 contains = require( '@stdlib/array/base/assert/contains' ).factory;\nvar dtypes = require( './../../../../dtypes' );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray real-valued data type.\n*\n* @name isRealDataType\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray real-valued data type\n*\n* @example\n* var bool = isRealDataType( 'binary' );\n* // returns false\n*\n* bool = isRealDataType( 'float32' );\n* // returns true\n*\n* bool = isRealDataType( 'float64' );\n* // returns true\n*\n* bool = isRealDataType( 'complex128' );\n* // returns false\n*\n* bool = isRealDataType( 'generic' );\n* // returns false\n*\n* bool = isRealDataType( 'int16' );\n* // returns true\n*\n* bool = isRealDataType( 'int32' );\n* // returns true\n*\n* bool = isRealDataType( 'int8' );\n* // returns true\n*\n* bool = isRealDataType( 'uint16' );\n* // returns true\n*\n* bool = isRealDataType( 'uint32' );\n* // returns true\n*\n* bool = isRealDataType( 'uint8' );\n* // returns true\n*\n* bool = isRealDataType( 'uint8c' );\n* // returns true\n*\n* bool = isRealDataType( 'foo' );\n* // returns false\n*/\nvar isRealDataType = contains( dtypes( 'real' ) );\n\n\n// EXPORTS //\n\nmodule.exports = isRealDataType;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 whether an input value is a supported ndarray real-valued data type.\n*\n* @module @stdlib/ndarray/base/assert/is-real-data-type\n*\n* @example\n* var isRealDataType = require( '@stdlib/ndarray/base/assert/is-real-data-type' );\n*\n* var bool = isRealDataType( 'binary' );\n* // returns false\n*\n* bool = isRealDataType( 'float32' );\n* // returns true\n*\n* bool = isRealDataType( 'float64' );\n* // returns true\n*\n* bool = isRealDataType( 'complex128' );\n* // returns false\n*\n* bool = isRealDataType( 'generic' );\n* // returns false\n*\n* bool = isRealDataType( 'int16' );\n* // returns true\n*\n* bool = isRealDataType( 'int32' );\n* // returns true\n*\n* bool = isRealDataType( 'int8' );\n* // returns true\n*\n* bool = isRealDataType( 'uint16' );\n* // returns true\n*\n* bool = isRealDataType( 'uint32' );\n* // returns true\n*\n* bool = isRealDataType( 'uint8' );\n* // returns true\n*\n* bool = isRealDataType( 'uint8c' );\n* // returns true\n*\n* bool = isRealDataType( 'foo' );\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 contains = require( '@stdlib/array/base/assert/contains' ).factory;\nvar dtypes = require( './../../../../dtypes' );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray real-valued floating-point data type.\n*\n* @name isRealFloatingPointDataType\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray real-valued floating-point data type\n*\n* @example\n* var bool = isRealFloatingPointDataType( 'binary' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'float32' );\n* // returns true\n*\n* bool = isRealFloatingPointDataType( 'float64' );\n* // returns true\n*\n* bool = isRealFloatingPointDataType( 'generic' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'int16' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'int32' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'int8' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'uint16' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'uint32' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'uint8' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'uint8c' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'foo' );\n* // returns false\n*/\nvar isRealFloatingPointDataType = contains( dtypes( 'real_floating_point' ) ); // eslint-disable-line id-length\n\n\n// EXPORTS //\n\nmodule.exports = isRealFloatingPointDataType;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 whether an input value is a supported ndarray real-valued floating-point data type.\n*\n* @module @stdlib/ndarray/base/assert/is-real-floating-point-data-type\n*\n* @example\n* var isRealFloatingPointDataType = require( '@stdlib/ndarray/base/assert/is-real-floating-point-data-type' );\n*\n* var bool = isRealFloatingPointDataType( 'binary' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'float32' );\n* // returns true\n*\n* bool = isRealFloatingPointDataType( 'float64' );\n* // returns true\n*\n* bool = isRealFloatingPointDataType( 'generic' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'int16' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'int32' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'int8' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'uint16' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'uint32' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'uint8' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'uint8c' );\n* // returns false\n*\n* bool = isRealFloatingPointDataType( 'foo' );\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) 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 abs = require( '@stdlib/math/base/special/abs' );\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if an array is row-major based on a provided stride array.\n*\n* @param {IntegerArray} strides - stride array\n* @returns {boolean} boolean indicating if an array is row-major\n*\n* @example\n* var bool = isRowMajor( [ 2, 1 ] );\n* // returns true\n*\n* bool = isRowMajor( [ 1, 2 ] );\n* // returns false\n*/\nfunction isRowMajor( strides ) {\n\tvar ndims;\n\tvar s1;\n\tvar s2;\n\tvar i;\n\n\tndims = strides.length;\n\tif ( ndims === 0 ) {\n\t\treturn false;\n\t}\n\ts1 = abs( strides[ 0 ] );\n\tfor ( i = 1; i < ndims; i++ ) {\n\t\ts2 = abs( strides[ i ] );\n\t\tif ( s2 > s1 ) {\n\t\t\treturn false;\n\t\t}\n\t\ts1 = s2;\n\t}\n\treturn true;\n}\n\n\n// EXPORTS //\n\nmodule.exports = isRowMajor;\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* Given a stride array, determine whether an array is row-major.\n*\n* @module @stdlib/ndarray/base/assert/is-row-major\n*\n* @example\n* var isRowMajor = require( '@stdlib/ndarray/base/assert/is-row-major' );\n*\n* var bool = isRowMajor( [ 2, 1 ] );\n* // returns true\n*\n* bool = isRowMajor( [ 1, 2 ] );\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) 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 isSingleSegmentCompatible = require( './../../../../base/assert/is-single-segment-compatible' );\nvar iterationOrder = require( './../../../../base/iteration-order' );\nvar isRowMajor = require( './../../../../base/assert/is-row-major' );\n\n\n// MAIN //\n\n/**\n* Returns a boolean indicating if an array is row-major contiguous.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @returns {boolean} boolean indicating if an array is row-major contiguous\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var bool = isRowMajorContiguous( shape, strides, offset );\n* // returns true\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ -2, 1 ];\n* var offset = 2;\n*\n* var bool = isRowMajorContiguous( shape, strides, offset );\n* // returns false\n*\n* @example\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 2 ];\n* var offset = 0;\n*\n* var bool = isRowMajorContiguous( shape, strides, offset );\n* // returns false\n*/\nfunction isRowMajorContiguous( shape, strides, offset ) {\n\treturn (\n\t\titerationOrder( strides ) !== 0 &&\n\t\tisRowMajor( strides ) &&\n\t\tisSingleSegmentCompatible( shape, strides, offset )\n\t);\n}\n\n\n// EXPORTS //\n\nmodule.exports = isRowMajorContiguous;\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 if an array is row-major contiguous.\n*\n* @module @stdlib/ndarray/base/assert/is-row-major-contiguous\n*\n* @example\n* var isRowMajorContiguous = require( '@stdlib/ndarray/base/assert/is-row-major-contiguous' );\n*\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var bool = isRowMajorContiguous( shape, strides, offset );\n* // returns true\n*\n* @example\n* var isRowMajorContiguous = require( '@stdlib/ndarray/base/assert/is-row-major-contiguous' );\n*\n* var shape = [ 2, 2 ];\n* var strides = [ -2, 1 ];\n* var offset = 2;\n*\n* var bool = isRowMajorContiguous( shape, strides, offset );\n* // returns false\n*\n* @example\n* var isRowMajorContiguous = require( '@stdlib/ndarray/base/assert/is-row-major-contiguous' );\n*\n* var shape = [ 2, 2 ];\n* var strides = [ 2, 2 ];\n* var offset = 0;\n*\n* var bool = isRowMajorContiguous( shape, strides, offset );\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 contains = require( '@stdlib/array/base/assert/contains' ).factory;\nvar dtypes = require( './../../../../dtypes' );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray signed integer data type.\n*\n* @name isSignedIntegerDataType\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray signed integer data type\n*\n* @example\n* var bool = isSignedIntegerDataType( 'binary' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'float32' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'float64' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'generic' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'int16' );\n* // returns true\n*\n* bool = isSignedIntegerDataType( 'int32' );\n* // returns true\n*\n* bool = isSignedIntegerDataType( 'int8' );\n* // returns true\n*\n* bool = isSignedIntegerDataType( 'uint16' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'uint32' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'uint8' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'uint8c' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'foo' );\n* // returns false\n*/\nvar isSignedIntegerDataType = contains( dtypes( 'signed_integer' ) );\n\n\n// EXPORTS //\n\nmodule.exports = isSignedIntegerDataType;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 whether an input value is a supported ndarray signed integer data type.\n*\n* @module @stdlib/ndarray/base/assert/is-signed-integer-data-type\n*\n* @example\n* var isSignedIntegerDataType = require( '@stdlib/ndarray/base/assert/is-signed-integer-data-type' );\n*\n* var bool = isSignedIntegerDataType( 'binary' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'float32' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'float64' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'generic' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'int16' );\n* // returns true\n*\n* bool = isSignedIntegerDataType( 'int32' );\n* // returns true\n*\n* bool = isSignedIntegerDataType( 'int8' );\n* // returns true\n*\n* bool = isSignedIntegerDataType( 'uint16' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'uint32' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'uint8' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'uint8c' );\n* // returns false\n*\n* bool = isSignedIntegerDataType( 'foo' );\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 contains = require( '@stdlib/array/base/assert/contains' ).factory;\nvar dtypes = require( './../../../../dtypes' );\n\n\n// MAIN //\n\n/**\n* Tests whether an input value is a supported ndarray unsigned integer data type.\n*\n* @name isUnsignedIntegerDataType\n* @type {Function}\n* @param {*} v - value to test\n* @returns {boolean} boolean indicating whether an input value is a supported ndarray unsigned integer data type\n*\n* @example\n* var bool = isUnsignedIntegerDataType( 'binary' );\n* // returns false\n*\n* bool = isUnsignedIntegerDataType( 'float32' );\n* // returns false\n*\n* bool = isUnsignedIntegerDataType( 'float64' );\n* // returns false\n*\n* bool = isUnsignedIntegerDataType( 'generic' );\n* // returns false\n*\n* bool = isUnsignedIntegerDataType( 'int16' );\n* // returns false\n*\n* bool = isUnsignedIntegerDataType( 'int32' );\n* // returns false\n*\n* bool = isUnsignedIntegerDataType( 'int8' );\n* // returns false\n*\n* bool = isUnsignedIntegerDataType( 'uint16' );\n* // returns true\n*\n* bool = isUnsignedIntegerDataType( 'uint32' );\n* // returns true\n*\n* bool = isUnsignedIntegerDataType( 'uint8' );\n* // returns true\n*\n* bool = isUnsignedIntegerDataType( 'uint8c' );\n* // returns true\n*\n* bool = isUnsignedIntegerDataType( 'foo' );\n* // returns false\n*/\nvar isUnsignedIntegerDataType = contains( dtypes( 'unsigned_integer' ) );\n\n\n// EXPORTS //\n\nmodule.exports = isUnsignedIntegerDataType;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 whether an input value is a supported ndarray unsigned integer data type.\n*\n* @module @stdlib/ndarray/base/assert/is-unsigned-integer-data-type\n*\n* @example\n* var isUnsignedIntegerDataType = require( '@stdlib/ndarray/base/assert/is-unsigned-integer-data-type' );\n*\n* var bool = isUnsignedIntegerDataType( 'binary' );\n* // returns false\n*\n* bool = isUnsignedIntegerDataType( 'float32' );\n* // returns false\n*\n* bool = isUnsignedIntegerDataType( 'float64' );\n* // returns false\n*\n* bool = isUnsignedIntegerDataType( 'generic' );\n* // returns false\n*\n* bool = isUnsignedIntegerDataType( 'int16' );\n* // returns false\n*\n* bool = isUnsignedIntegerDataType( 'int32' );\n* // returns false\n*\n* bool = isUnsignedIntegerDataType( 'int8' );\n* // returns false\n*\n* bool = isUnsignedIntegerDataType( 'uint16' );\n* // returns true\n*\n* bool = isUnsignedIntegerDataType( 'uint32' );\n* // returns true\n*\n* bool = isUnsignedIntegerDataType( 'uint8' );\n* // returns true\n*\n* bool = isUnsignedIntegerDataType( 'uint8c' );\n* // returns true\n*\n* bool = isUnsignedIntegerDataType( 'foo' );\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) 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// 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 isAllowedDataTypeCast\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-allowed-data-type-cast}\n*/\nsetReadOnly( ns, 'isAllowedDataTypeCast', require( './../../../base/assert/is-allowed-data-type-cast' ) );\n\n/**\n* @name isBufferLengthCompatible\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-buffer-length-compatible}\n*/\nsetReadOnly( ns, 'isBufferLengthCompatible', require( './../../../base/assert/is-buffer-length-compatible' ) );\n\n/**\n* @name isBufferLengthCompatibleShape\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-buffer-length-compatible-shape}\n*/\nsetReadOnly( ns, 'isBufferLengthCompatibleShape', require( './../../../base/assert/is-buffer-length-compatible-shape' ) );\n\n/**\n* @name isCastingMode\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-casting-mode}\n*/\nsetReadOnly( ns, 'isCastingMode', require( './../../../base/assert/is-casting-mode' ) );\n\n/**\n* @name isColumnMajor\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-column-major}\n*/\nsetReadOnly( ns, 'isColumnMajor', require( './../../../base/assert/is-column-major' ) );\n\n/**\n* @name isColumnMajorContiguous\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-column-major-contiguous}\n*/\nsetReadOnly( ns, 'isColumnMajorContiguous', require( './../../../base/assert/is-column-major-contiguous' ) );\n\n/**\n* @name isComplexFloatingPointDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-complex-floating-point-data-type}\n*/\nsetReadOnly( ns, 'isComplexFloatingPointDataType', require( './../../../base/assert/is-complex-floating-point-data-type' ) );\n\n/**\n* @name isContiguous\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-contiguous}\n*/\nsetReadOnly( ns, 'isContiguous', require( './../../../base/assert/is-contiguous' ) );\n\n/**\n* @name isDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-data-type}\n*/\nsetReadOnly( ns, 'isDataType', require( './../../../base/assert/is-data-type' ) );\n\n/**\n* @name isFloatingPointDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-floating-point-data-type}\n*/\nsetReadOnly( ns, 'isFloatingPointDataType', require( './../../../base/assert/is-floating-point-data-type' ) );\n\n/**\n* @name isIndexMode\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-index-mode}\n*/\nsetReadOnly( ns, 'isIndexMode', require( './../../../base/assert/is-index-mode' ) );\n\n/**\n* @name isIntegerDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-integer-data-type}\n*/\nsetReadOnly( ns, 'isIntegerDataType', require( './../../../base/assert/is-integer-data-type' ) );\n\n/**\n* @name isMostlySafeDataTypeCast\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-mostly-safe-data-type-cast}\n*/\nsetReadOnly( ns, 'isMostlySafeDataTypeCast', require( './../../../base/assert/is-mostly-safe-data-type-cast' ) );\n\n/**\n* @name isNumericDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-numeric-data-type}\n*/\nsetReadOnly( ns, 'isNumericDataType', require( './../../../base/assert/is-numeric-data-type' ) );\n\n/**\n* @name isOrder\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-order}\n*/\nsetReadOnly( ns, 'isOrder', require( './../../../base/assert/is-order' ) );\n\n/**\n* @name isReadOnly\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-read-only}\n*/\nsetReadOnly( ns, 'isReadOnly', require( './../../../base/assert/is-read-only' ) );\n\n/**\n* @name isRealDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-real-data-type}\n*/\nsetReadOnly( ns, 'isRealDataType', require( './../../../base/assert/is-real-data-type' ) );\n\n/**\n* @name isRealFloatingPointDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-real-floating-point-data-type}\n*/\nsetReadOnly( ns, 'isRealFloatingPointDataType', require( './../../../base/assert/is-real-floating-point-data-type' ) );\n\n/**\n* @name isRowMajor\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-row-major}\n*/\nsetReadOnly( ns, 'isRowMajor', require( './../../../base/assert/is-row-major' ) );\n\n/**\n* @name isRowMajorContiguous\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-row-major-contiguous}\n*/\nsetReadOnly( ns, 'isRowMajorContiguous', require( './../../../base/assert/is-row-major-contiguous' ) );\n\n/**\n* @name isSafeDataTypeCast\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-safe-data-type-cast}\n*/\nsetReadOnly( ns, 'isSafeDataTypeCast', require( './../../../base/assert/is-safe-data-type-cast' ) );\n\n/**\n* @name isSameKindDataTypeCast\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-same-kind-data-type-cast}\n*/\nsetReadOnly( ns, 'isSameKindDataTypeCast', require( './../../../base/assert/is-same-kind-data-type-cast' ) );\n\n/**\n* @name isSignedIntegerDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-signed-integer-data-type}\n*/\nsetReadOnly( ns, 'isSignedIntegerDataType', require( './../../../base/assert/is-signed-integer-data-type' ) );\n\n/**\n* @name isSingleSegmentCompatible\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-single-segment-compatible}\n*/\nsetReadOnly( ns, 'isSingleSegmentCompatible', require( './../../../base/assert/is-single-segment-compatible' ) );\n\n/**\n* @name isUnsignedIntegerDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assert/is-unsigned-integer-data-type}\n*/\nsetReadOnly( ns, 'isUnsignedIntegerDataType', require( './../../../base/assert/is-unsigned-integer-data-type' ) );\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* Returns the data type of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @returns {string} data type\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n*\n* var x = zeros( [ 3, 3, 3 ], {\n* 'dtype': 'float64'\n* });\n*\n* var dt = dtype( x );\n* // returns 'float64'\n*/\nfunction dtype( x ) {\n\treturn x.dtype;\n}\n\n\n// EXPORTS //\n\nmodule.exports = dtype;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 a provided ndarray.\n*\n* @module @stdlib/ndarray/base/dtype\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n* var dtype = require( '@stdlib/ndarray/base/dtype' );\n*\n* var x = zeros( [ 3, 3, 3 ], {\n* 'dtype': 'float64'\n* });\n*\n* var dt = dtype( x );\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 copyIndexed = require( '@stdlib/array/base/copy-indexed' );\n\n\n// MAIN //\n\n/**\n* Returns the shape of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @param {boolean} copy - boolean indicating whether to explicitly copy the value assigned to the input ndarray's `shape` property\n* @returns {NonNegativeIntegerArray} shape\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n*\n* var out = shape( zeros( [ 3, 3, 3 ] ), false );\n* // returns [ 3, 3, 3 ]\n*/\nfunction shape( x, copy ) {\n\tvar sh = x.shape;\n\tif ( copy ) {\n\t\treturn copyIndexed( sh );\n\t}\n\treturn sh;\n}\n\n\n// EXPORTS //\n\nmodule.exports = shape;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 shape of a provided ndarray.\n*\n* @module @stdlib/ndarray/base/shape\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n* var shape = require( '@stdlib/ndarray/base/shape' );\n*\n* var sh = shape( zeros( [ 3, 3, 3 ] ), false );\n* // returns [ 3, 3, 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'use strict';\n\n// MODULES //\n\nvar shape2strides = require( './../../../base/shape2strides' );\nvar copyIndexed = require( '@stdlib/array/base/copy-indexed' );\n\n\n// VARIABLES //\n\nvar ROW_MAJOR = 'row-major';\n\n\n// MAIN //\n\n/**\n* Returns the strides of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @param {boolean} copy - boolean indicating whether to explicitly copy the value assigned to the input ndarray's `strides` property\n* @returns {IntegerArray} strides\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n*\n* var out = strides( zeros( [ 3, 3, 3 ] ), false );\n* // returns [ 9, 3, 1 ]\n*/\nfunction strides( x, copy ) {\n\tvar ord;\n\tvar sh;\n\tvar st;\n\n\tst= x.strides;\n\tif ( typeof st !== 'object' || st === null ) {\n\t\tsh = x.shape;\n\t\tif ( sh.length === 0 ) {\n\t\t\treturn [ 0 ];\n\t\t}\n\t\tord = x.order;\n\t\tif ( typeof ord !== 'string' ) {\n\t\t\tord = ROW_MAJOR;\n\t\t}\n\t\treturn shape2strides( sh, ord );\n\t}\n\tif ( copy ) {\n\t\treturn copyIndexed( st );\n\t}\n\treturn st;\n}\n\n\n// EXPORTS //\n\nmodule.exports = strides;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 strides of a provided ndarray.\n*\n* @module @stdlib/ndarray/base/strides\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n* var strides = require( '@stdlib/ndarray/base/strides' );\n*\n* var st = strides( zeros( [ 3, 3, 3 ] ), false );\n* // returns [ 9, 3, 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// MODULES //\n\nvar strides2offset = require( './../../../base/strides2offset' );\n\n\n// MAIN //\n\n/**\n* Returns the index offset specifying the underlying buffer index of the first iterated ndarray element.\n*\n* @param {ndarrayLike} x - input ndarray\n* @returns {NonNegativeInteger} index offset\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n*\n* var n = offset( zeros( [ 3, 3, 3 ] ) );\n* // returns 0\n*/\nfunction offset( x ) {\n\tvar st;\n\tvar sh;\n\tvar o;\n\n\to = x.offset;\n\tif ( typeof o === 'number' ) {\n\t\treturn o;\n\t}\n\tsh = x.shape;\n\tif ( sh.length === 0 ) {\n\t\treturn 0;\n\t}\n\tst = x.strides;\n\tif ( typeof st !== 'object' || st === null ) {\n\t\treturn 0;\n\t}\n\treturn strides2offset( sh, st );\n}\n\n\n// EXPORTS //\n\nmodule.exports = offset;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 index offset specifying the underlying buffer index of the first iterated ndarray element.\n*\n* @module @stdlib/ndarray/base/offset\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n* var offset = require( '@stdlib/ndarray/base/offset' );\n*\n* var n = offset( zeros( [ 3, 3, 3 ] ) );\n* // returns 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 strides2order = require( './../../../base/strides2order' );\n\n\n// VARIABLES //\n\nvar ROW_MAJOR = 'row-major';\nvar COLUMN_MAJOR = 'column-major';\n\n\n// MAIN //\n\n/**\n* Returns the layout order of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @returns {(string|null)} layout order\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n*\n* var x = zeros( [ 3, 3, 3 ], {\n* 'order': 'row-major'\n* });\n*\n* var out = order( x );\n* // returns 'row-major'\n*/\nfunction order( x ) {\n\tvar st;\n\tvar o;\n\n\to = x.order;\n\tif ( typeof o === 'string' ) {\n\t\treturn o;\n\t}\n\t// Try to infer the layout order from the strides array...\n\tst = x.strides;\n\tif ( typeof st !== 'object' || st === null ) {\n\t\treturn ROW_MAJOR; // WARNING: default to row-major for ndarray-like objects lacking strides. This may or may not be accurate, and we're defaulting to row-major here based on the belief that row-major is more likely given that, e.g., JavaScript arrays are similar to C arrays (i.e., stored in row-major order).\n\t}\n\to = strides2order( st );\n\tif ( o === 1 || o === 3 ) {\n\t\treturn ROW_MAJOR; // for o == 3 (both row- and column-major; e.g., one-dimensional ndarrays), default to row-major\n\t}\n\tif ( o === 2 ) {\n\t\treturn COLUMN_MAJOR;\n\t}\n\t// o === 0\n\tif ( x.shape.length === 0 ) {\n\t\treturn ROW_MAJOR; // default to row-major for zero-dimensional ndarrays\n\t}\n\t// Case: mixed strides (e.g., [ 2, 3, 1 ] )\n\treturn null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = order;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 layout order of a provided ndarray.\n*\n* @module @stdlib/ndarray/base/order\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n* var order = require( '@stdlib/ndarray/base/order' );\n*\n* var x = zeros( [ 3, 3, 3 ], {\n* 'order': 'row-major'\n* });\n*\n* var out = order( x );\n* // returns 'row-major'\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 the underlying data buffer of a provided ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @returns {Collection} underlying data buffer\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n*\n* var x = zeros( [ 3, 3, 3 ], {\n* 'dtype': 'float64'\n* });\n*\n* var out = data( x );\n* // returns \n*/\nfunction data( x ) {\n\treturn x.data;\n}\n\n\n// EXPORTS //\n\nmodule.exports = data;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 underlying data buffer of a provided ndarray.\n*\n* @module @stdlib/ndarray/base/data-buffer\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n* var data = require( '@stdlib/ndarray/base/data-buffer' );\n*\n* var x = zeros( [ 3, 3, 3 ], {\n* 'dtype': 'float64'\n* });\n*\n* var out = data( x );\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 isAccessorArray = require( '@stdlib/array/base/assert/is-accessor-array' );\nvar accessorGetter = require( '@stdlib/array/base/accessor-getter' );\nvar accessorSetter = require( '@stdlib/array/base/accessor-setter' );\nvar getter = require( '@stdlib/array/base/getter' );\nvar setter = require( '@stdlib/array/base/setter' );\nvar numel = require( './../../../base/numel' );\nvar getDType = require( './../../../base/dtype' );\nvar getShape = require( './../../../base/shape' );\nvar getStrides = require( './../../../base/strides' );\nvar getOffset = require( './../../../base/offset' );\nvar getOrder = require( './../../../base/order' );\nvar getData = require( './../../../base/data-buffer' );\n\n\n// MAIN //\n\n/**\n* Converts an ndarray-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 ndarray meta data to ensure that internal functions operating on ndarrays are provided consistent argument \"shapes\".\n*\n* - The returned object has the following properties:\n*\n* - **ref**: reference to the original ndarray-like object.\n* - **dtype**: underlying data type.\n* - **data**: data buffer.\n* - **length**: number of elements.\n* - **shape**: array dimensions.\n* - **strides**: array strides.\n* - **offset**: index offset.\n* - **order**: order.\n* - **accessorProtocol**: `boolean` indicating whether the data buffer 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 ndarray element and whose second element is an accessor for setting an ndarray element.\n*\n* @param {ndarrayLike} x - ndarray-like object\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @returns {Object} object containing ndarray meta data\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var x = array( [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] );\n*\n* var obj = ndarraylike2object( x );\n* // returns {...}\n*/\nfunction ndarraylike2object( x ) {\n\tvar xbuf;\n\tvar bool;\n\tvar sh;\n\tvar dt;\n\n\txbuf = getData( x );\n\tsh = getShape( x, true );\n\tdt = getDType( x );\n\n\tbool = isAccessorArray( xbuf );\n\n\treturn {\n\t\t'ref': x,\n\t\t'dtype': dt,\n\t\t'data': xbuf,\n\t\t'length': numel( sh ),\n\t\t'shape': sh,\n\t\t'strides': getStrides( x, true ),\n\t\t'offset': getOffset( x ),\n\t\t'order': getOrder( x ),\n\t\t'accessorProtocol': bool,\n\t\t'accessors': ( bool ) ?\n\t\t\t[ accessorGetter( dt ), accessorSetter( dt ) ] :\n\t\t\t[ getter( dt ), setter( dt ) ]\n\t};\n}\n\n\n// EXPORTS //\n\nmodule.exports = ndarraylike2object;\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 ndarray-like object to an object likely to have the same \"shape\".\n*\n* @module @stdlib/ndarray/base/ndarraylike2object\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n* var ndarraylike2object = require( '@stdlib/ndarray/base/ndarraylike2object' );\n*\n* var x = array( [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] );\n*\n* var obj = ndarraylike2object( x );\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// MAIN //\n\n/**\n* Simultaneously sorts two arrays based on the sort order of the first array using insertion sort.\n*\n* ## Notes\n*\n* - The first array is sorted in increasing order according to absolute value.\n* - The algorithm has space complexity `O(1)` and worst case time complexity `O(N^2)`.\n* - The algorithm is efficient for small arrays (typically `N <= 20``) and is particularly efficient for sorting arrays which are already substantially sorted.\n* - The algorithm is **stable**, meaning that the algorithm does **not** change the order of array elements which are equal or equivalent.\n* - The input arrays are sorted in-place (i.e., the input arrays are mutated).\n*\n* @private\n* @param {Array} x - first array\n* @param {Array} y - second array\n* @returns {void}\n*\n* @example\n* var x = [ -4, -2, 3, 1 ];\n* var y = [ 0, 1, 2, 3 ];\n*\n* sort2ins( x, y );\n*\n* console.log( x );\n* // => [ 1, -2, 3, -4 ]\n*\n* console.log( y );\n* // => [ 3, 1, 2, 0 ]\n*/\nfunction sort2ins( x, y ) {\n\tvar avx;\n\tvar aux;\n\tvar ix;\n\tvar iy;\n\tvar jx;\n\tvar jy;\n\tvar vx;\n\tvar vy;\n\tvar ux;\n\tvar i;\n\n\tix = 1;\n\tiy = 1;\n\n\t// Sort in increasing order...\n\tfor ( i = 1; i < x.length; i++ ) {\n\t\tvx = x[ ix ];\n\t\tavx = ( vx < 0 ) ? -vx : vx;\n\n\t\tvy = y[ iy ];\n\n\t\tjx = ix - 1;\n\t\tjy = iy - 1;\n\n\t\t// Shift all larger values to the left of the current element to the right...\n\t\twhile ( jx >= 0 ) {\n\t\t\tux = x[ jx ];\n\t\t\taux = ( ux < 0 ) ? -ux : ux;\n\t\t\tif ( aux <= avx ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tx[ jx+1 ] = ux;\n\t\t\ty[ jy+1 ] = y[ jy ];\n\t\t\tjx -= 1;\n\t\t\tjy -= 1;\n\t\t}\n\t\tx[ jx+1 ] = vx;\n\t\ty[ jy+1 ] = vy;\n\t\tix += 1;\n\t\tiy += 1;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = sort2ins;\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 zeroTo = require( '@stdlib/array/base/zero-to' );\nvar copy = require( '@stdlib/array/base/copy-indexed' );\nvar take = require( '@stdlib/array/base/take-indexed' );\nvar sort2ins = require( './sort2ins.js' );\n\n\n// MAIN //\n\n/**\n* Reorders ndarray dimensions and associated strides for loop interchange.\n*\n* ## Notes\n*\n* - The returned object has the following properties:\n*\n* - **sh**: dimensions sorted in loop order.\n* - **sx**: input ndarray strides sorted in loop order.\n* - **sy**: output ndarray strides sorted in loop order.\n*\n* @param {NonNegativeIntegerArray} sh - array dimensions\n* @param {IntegerArray} sx - input array stride lengths\n* @param {IntegerArray} sy - output array stride lengths\n* @returns {Object} loop interchange data\n*\n* @example\n* var sh = [ 2, 3, 4 ];\n*\n* var sx = [ 12, 4, 1 ]; // row-major\n* var sy = [ 1, -2, 6 ]; // column-major\n*\n* var o = loopOrder( sh, sx, sy );\n* // returns {...}\n*\n* var ssh = o.sh;\n* // returns [ 4, 3, 2 ]\n*\n* var ssx = o.sx;\n* // returns [ 1, 4, 12 ]\n*\n* var ssy = o.sy;\n* // returns [ 6, -2, 1 ]\n*/\nfunction loopOrder( sh, sx, sy ) {\n\tvar idx;\n\n\t// Initialize a loop interchange index array for generating a loop order permutation:\n\tidx = zeroTo( sh.length );\n\n\t// Sort the input array strides in increasing order (of magnitude):\n\tsx = copy( sx );\n\tsort2ins( sx, idx );\n\n\t// Permute the shape and output array strides based on the sorted input array strides:\n\tsh = take( sh, idx );\n\tsy = take( sy, idx );\n\n\treturn {\n\t\t'sh': sh,\n\t\t'sx': sx,\n\t\t'sy': sy\n\t};\n}\n\n\n// EXPORTS //\n\nmodule.exports = loopOrder;\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* Reorder ndarray dimensions and associated strides for loop interchange.\n*\n* @module @stdlib/ndarray/base/unary-loop-interchange-order\n*\n* @example\n* var unaryLoopOrder = require( '@stdlib/ndarray/base/unary-loop-interchange-order' );\n*\n* var sh = [ 2, 3, 4 ];\n*\n* var sx = [ 12, 4, 1 ]; // row-major\n* var sy = [ 1, -2, 6 ]; // column-major\n*\n* var o = unaryLoopOrder( sh, sx, sy );\n* // returns {...}\n*\n* var ssh = o.sh;\n* // returns [ 4, 3, 2 ]\n*\n* var ssx = o.sx;\n* // returns [ 1, 4, 12 ]\n*\n* var ssy = o.sy;\n* // returns [ 6, -2, 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// MAIN //\n\nvar defaults = {\n\t// Define a default block size (in bytes):\n\t'BLOCK_SIZE_IN_BYTES': 64|0, // 64b is a common cache line size. How applicable the common cache line size is here is debatable, given that, depending on the associated stride(s), the innermost loop may not iterate over adjacent elements. The primary goal is to have a block size in which all data within a block can always fit in (L1) cache, regardless of cache size (i.e., cache-oblivious). For reference, a common L1 cache size is 32kB per core. For best performance, block sizes should be tuned based on system hardware; however, such tuning is not readily available to us here. Without obvious better alternatives, 64b has some theoretical (and practical) underpinning, and it should be good enough for most inputs, especially for ndarrays with near contiguity.\n\n\t// Define a default block size (in elements):\n\t'BLOCK_SIZE_IN_ELEMENTS': 8|0 // 64 bytes / 8 bytes per element (i.e., default element size is same as a double)\n};\n\n\n// EXPORTS //\n\nmodule.exports = defaults;\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 bytesPerElement = require( './../../../base/bytes-per-element' );\nvar defaults = require( './defaults.js' );\n\n\n// MAIN //\n\n/**\n* Returns a loop block size for multi-dimensional array tiled loops.\n*\n* @param {string} dtypeX - input array data type\n* @param {string} dtypeY - output array data type\n* @returns {integer} block size (in units of elements)\n*\n* @example\n* var bsize = unaryBlockSize( 'float64', 'float64' );\n* // returns \n*/\nfunction unaryBlockSize( dtypeX, dtypeY ) {\n\tvar nbx;\n\tvar nby;\n\n\tnbx = bytesPerElement( dtypeX );\n\tnby = bytesPerElement( dtypeY );\n\tif ( nbx === null || nby === null ) { // e.g., \"generic\" arrays\n\t\treturn defaults.BLOCK_SIZE_IN_ELEMENTS;\n\t}\n\tif ( nbx > nby ) {\n\t\treturn ( defaults.BLOCK_SIZE_IN_BYTES/nbx )|0; // asm type annotation\n\t}\n\treturn ( defaults.BLOCK_SIZE_IN_BYTES/nby )|0; // asm type annotation\n}\n\n\n// EXPORTS //\n\nmodule.exports = unaryBlockSize;\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* Resolve a loop block size for multi-dimensional array tiled loops.\n*\n* @module @stdlib/ndarray/base/unary-tiling-block-size\n*\n* @example\n* var unaryBlockSize = require( '@stdlib/ndarray/base/unary-tiling-block-size' );\n*\n* var bsize = unaryBlockSize( 'float64', 'float64' );\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 loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Assigns elements in a two-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\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* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign2d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign2d( x, y ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar ox1;\n\tvar oy1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t// Compute loop offset increments...\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedassign2d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Assigns elements in a three-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\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* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign3d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign3d( x, y ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedassign3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Assigns elements in a four-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\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* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign4d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign4d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\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 ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\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 o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\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 = blockedassign4d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Assigns elements in a five-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\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* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign5d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign5d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\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 ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\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 o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedassign5d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Assigns elements in a six-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\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* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign6d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign6d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedassign6d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Assigns elements in a seven-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\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* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign7d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign7d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedassign7d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Assigns elements in an eight-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\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* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign8d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign8d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedassign8d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Assigns elements in a nine-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @returns {void}\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* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign9d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign9d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedassign9d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Assigns elements in a ten-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\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* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* blockedassign10d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction blockedassign10d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedassign10d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Assigns elements in a two-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign2d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0 ]\n*/\nfunction blockedassign2d( x, y ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar ox1;\n\tvar oy1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t// Compute loop offset increments...\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedassign2d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Assigns elements in a three-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign3d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign3d( x, y ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedassign3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Assigns elements in a four-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign4d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign4d( x, y ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\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 ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\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 o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\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 = blockedassign4d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Assigns elements in a five-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign5d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign5d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\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 ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\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 o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedassign5d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Assigns elements in a six-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign6d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign6d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedassign6d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Assigns elements in a seven-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign7d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign7d( x, y ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedassign7d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Assigns elements in an eight-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign8d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign8d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedassign8d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Assigns elements in a nine-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign9d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign9d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedassign9d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Assigns elements in a ten-dimensional input ndarray to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* blockedassign10d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction blockedassign10d( x, y ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedassign10d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Assigns elements in a zero-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\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* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0 ] );\n* var ybuf = new Complex64Array( 2 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign0d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 3.0\n*\n* var im = imagf( v );\n* // returns 4.0\n*/\nfunction assign0d( x, y ) {\n\ty.accessors[ 1 ]( y.data, y.offset, x.accessors[ 0 ]( x.data, x.offset ) );\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign0d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Assigns elements in a one-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\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* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign1d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign1d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dy0;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\tix += dx0;\n\t\tiy += dy0;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign1d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Assigns elements in a two-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\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* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign2d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign2d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign2d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Assigns elements in a three-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\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* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign3d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign3d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Assigns elements in a four-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\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* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign4d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign4d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\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 sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign4d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Assigns elements in a five-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\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* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign5d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign5d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\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 sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign5d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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* Assigns elements in a six-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\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* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign6d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign6d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign6d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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* Assigns elements in a seven-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\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* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign7d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign7d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign7d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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* Assigns elements in an eight-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\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* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign8d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign8d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign8d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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* Assigns elements in a nine-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\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* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign9d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign9d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign9d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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* Assigns elements in a ten-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\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* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assign10d( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assign10d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign10d;\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 format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Converts a linear index in an array view to a linear index in an underlying data buffer.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - location of the first indexed value **based** on the stride array\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @param {integer} idx - linear index in an array view\n* @param {string} mode - specifies how to handle a linear index which exceeds array dimensions\n* @throws {RangeError} linear index must not exceed array dimensions\n* @returns {NonNegativeInteger} linear index in an underlying data buffer\n*\n* @example\n* var shape = [ 3, 3 ];\n* var strides = [ -3, 1 ];\n* var offset = 6;\n* var order = 'row-major';\n* var mode = 'throw';\n*\n* var ind = vind2bind( shape, strides, offset, order, 1, mode );\n* // returns 7\n*/\nfunction vind2bind( shape, strides, offset, order, idx, mode ) {\n\tvar ndims;\n\tvar len;\n\tvar ind;\n\tvar s;\n\tvar i;\n\n\tndims = shape.length;\n\tlen = 1;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tlen *= shape[ i ];\n\t}\n\tif ( mode === 'clamp' ) {\n\t\tif ( idx < 0 ) {\n\t\t\tidx = 0;\n\t\t} else if ( idx >= len ) {\n\t\t\tidx = len - 1;\n\t\t}\n\t} else if ( mode === 'wrap' ) {\n\t\tif ( idx < 0 ) {\n\t\t\tidx += len; // slight optimization to avoid modulo arithmetic when |idx| <= len\n\t\t\tif ( idx < 0 ) {\n\t\t\t\tidx %= len;\n\t\t\t\tif ( idx !== 0 ) {\n\t\t\t\t\tidx += len;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if ( idx >= len ) {\n\t\t\tidx -= len; // slight optimization to avoid modulo arithmetic when len < idx <= 2*len\n\t\t\tif ( idx >= len ) {\n\t\t\t\tidx %= len;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif ( mode === 'normalize' && idx < 0 ) {\n\t\t\tidx += len;\n\t\t}\n\t\tif ( idx < 0 || idx >= len ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Linear index must not exceed array dimensions. Number of array elements: `%u`. Value: `%d`.', len, idx ) );\n\t\t}\n\t}\n\t// The approach which follows is to resolve a view index to its subscripts and then plug the subscripts into the standard formula for computing the linear index in the underlying data buffer...\n\tind = offset;\n\tif ( order === 'column-major' ) {\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\ts = idx % shape[ i ];\n\t\t\tidx -= s;\n\t\t\tidx /= shape[ i ];\n\t\t\tind += s * strides[ i ];\n\t\t}\n\t\treturn ind;\n\t}\n\t// Case: row-major\n\tfor ( i = ndims-1; i >= 0; i-- ) {\n\t\ts = idx % shape[ i ];\n\t\tidx -= s;\n\t\tidx /= shape[ i ];\n\t\tind += s * strides[ i ];\n\t}\n\treturn ind;\n}\n\n\n// EXPORTS //\n\nmodule.exports = vind2bind;\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 a linear index in an array view to a linear index in an underlying data buffer.\n*\n* @module @stdlib/ndarray/base/vind2bind\n*\n* @example\n* var vind2bind = require( '@stdlib/ndarray/base/vind2bind' );\n*\n* var shape = [ 3, 3 ];\n* var strides = [ -3, 1 ];\n* var offset = 6;\n* var order = 'row-major';\n* var mode = 'throw';\n*\n* var ind = vind2bind( shape, strides, offset, order, 1, mode );\n* // returns 7\n*/\n\n// MODULES //\n\nvar vind2bind = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = vind2bind;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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( './../../../base/numel' );\nvar vind2bind = require( './../../../base/vind2bind' );\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Assigns elements in an n-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @returns {void}\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* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Copy elements:\n* assignnd( x, y );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 1.0\n*\n* var im = imagf( v );\n* // returns 2.0\n*/\nfunction assignnd( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar ordx;\n\tvar ordy;\n\tvar len;\n\tvar get;\n\tvar set;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray data buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tset( ybuf, iy, get( xbuf, ix ) );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = assignnd;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Assigns elements in a zero-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n* var ybuf = new Float64Array( 1 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign0d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0 ]\n*/\nfunction assign0d( x, y ) {\n\ty.data[ y.offset ] = x.data[ x.offset ];\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign0d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Assigns elements in a one-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign1d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 4.0, 6.0, 8.0 ]\n*/\nfunction assign1d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dy0;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tybuf[ iy ] = xbuf[ ix ];\n\t\tix += dx0;\n\t\tiy += dy0;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign1d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Assigns elements in a two-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign2d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0 ]\n*/\nfunction assign2d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign2d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Assigns elements in a three-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign3d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign3d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Assigns elements in a four-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign4d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign4d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\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 sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign4d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Assigns elements in a five-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign5d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign5d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\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 sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign5d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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* Assigns elements in a six-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign6d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign6d( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign6d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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* Assigns elements in a seven-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign7d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign7d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign7d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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* Assigns elements in an eight-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign8d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign8d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign8d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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* Assigns elements in a nine-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign9d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign9d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign9d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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* Assigns elements in a ten-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign10d( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign10d( x, y ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = xbuf[ ix ];\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign10d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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( './../../../base/numel' );\nvar vind2bind = require( './../../../base/vind2bind' );\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Assigns elements in an n-dimensional input ndarray to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assignnd( x, y );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0 ]\n*/\nfunction assignnd( x, y ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar ordx;\n\tvar ordy;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray data buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tybuf[ iy ] = xbuf[ ix ];\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = assignnd;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 isComplexDataType = require( './../../../base/assert/is-complex-floating-point-data-type' );\nvar isRealDataType = require( './../../../base/assert/is-real-data-type' );\nvar iterationOrder = require( './../../../base/iteration-order' );\nvar castReturn = require( '@stdlib/complex/base/cast-return' );\nvar complexCtors = require( '@stdlib/complex/ctors' );\nvar minmaxViewBufferIndex = require( './../../../base/minmax-view-buffer-index' );\nvar ndarray2object = require( './../../../base/ndarraylike2object' );\nvar blockedaccessorassign2d = require( './2d_blocked_accessors.js' );\nvar blockedaccessorassign3d = require( './3d_blocked_accessors.js' );\nvar blockedaccessorassign4d = require( './4d_blocked_accessors.js' );\nvar blockedaccessorassign5d = require( './5d_blocked_accessors.js' );\nvar blockedaccessorassign6d = require( './6d_blocked_accessors.js' );\nvar blockedaccessorassign7d = require( './7d_blocked_accessors.js' );\nvar blockedaccessorassign8d = require( './8d_blocked_accessors.js' );\nvar blockedaccessorassign9d = require( './9d_blocked_accessors.js' );\nvar blockedaccessorassign10d = require( './10d_blocked_accessors.js' );\nvar blockedassign2d = require( './2d_blocked.js' );\nvar blockedassign3d = require( './3d_blocked.js' );\nvar blockedassign4d = require( './4d_blocked.js' );\nvar blockedassign5d = require( './5d_blocked.js' );\nvar blockedassign6d = require( './6d_blocked.js' );\nvar blockedassign7d = require( './7d_blocked.js' );\nvar blockedassign8d = require( './8d_blocked.js' );\nvar blockedassign9d = require( './9d_blocked.js' );\nvar blockedassign10d = require( './10d_blocked.js' );\nvar accessorassign0d = require( './0d_accessors.js' );\nvar accessorassign1d = require( './1d_accessors.js' );\nvar accessorassign2d = require( './2d_accessors.js' );\nvar accessorassign3d = require( './3d_accessors.js' );\nvar accessorassign4d = require( './4d_accessors.js' );\nvar accessorassign5d = require( './5d_accessors.js' );\nvar accessorassign6d = require( './6d_accessors.js' );\nvar accessorassign7d = require( './7d_accessors.js' );\nvar accessorassign8d = require( './8d_accessors.js' );\nvar accessorassign9d = require( './9d_accessors.js' );\nvar accessorassign10d = require( './10d_accessors.js' );\nvar accessorassignnd = require( './nd_accessors.js' );\nvar assign0d = require( './0d.js' );\nvar assign1d = require( './1d.js' );\nvar assign2d = require( './2d.js' );\nvar assign3d = require( './3d.js' );\nvar assign4d = require( './4d.js' );\nvar assign5d = require( './5d.js' );\nvar assign6d = require( './6d.js' );\nvar assign7d = require( './7d.js' );\nvar assign8d = require( './8d.js' );\nvar assign9d = require( './9d.js' );\nvar assign10d = require( './10d.js' );\nvar assignnd = require( './nd.js' );\n\n\n// VARIABLES //\n\nvar ASSIGN = [\n\tassign0d,\n\tassign1d,\n\tassign2d,\n\tassign3d,\n\tassign4d,\n\tassign5d,\n\tassign6d,\n\tassign7d,\n\tassign8d,\n\tassign9d,\n\tassign10d\n];\nvar ACCESSOR_ASSIGN = [\n\taccessorassign0d,\n\taccessorassign1d,\n\taccessorassign2d,\n\taccessorassign3d,\n\taccessorassign4d,\n\taccessorassign5d,\n\taccessorassign6d,\n\taccessorassign7d,\n\taccessorassign8d,\n\taccessorassign9d,\n\taccessorassign10d\n];\nvar BLOCKED_ASSIGN = [\n\tblockedassign2d, // 0\n\tblockedassign3d,\n\tblockedassign4d,\n\tblockedassign5d,\n\tblockedassign6d,\n\tblockedassign7d,\n\tblockedassign8d,\n\tblockedassign9d,\n\tblockedassign10d // 8\n];\nvar BLOCKED_ACCESSOR_ASSIGN = [\n\tblockedaccessorassign2d, // 0\n\tblockedaccessorassign3d,\n\tblockedaccessorassign4d,\n\tblockedaccessorassign5d,\n\tblockedaccessorassign6d,\n\tblockedaccessorassign7d,\n\tblockedaccessorassign8d,\n\tblockedaccessorassign9d,\n\tblockedaccessorassign10d // 8\n];\nvar MAX_DIMS = ASSIGN.length - 1;\n\n\n// MAIN //\n\n/**\n* Assigns elements in an input ndarray to elements in an output ndarray.\n*\n* ## Notes\n*\n* - Each provided ndarray should be an `object` with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @throws {Error} arrays must have the same number of dimensions\n* @throws {Error} arrays must have the same shape\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign( [ x, y ] );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 11.0 ]\n*/\nfunction assign( arrays ) {\n\tvar ndims;\n\tvar xmmv;\n\tvar ymmv;\n\tvar shx;\n\tvar shy;\n\tvar iox;\n\tvar ioy;\n\tvar len;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ns;\n\tvar x;\n\tvar y;\n\tvar d;\n\tvar i;\n\n\t// Unpack the ndarrays and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\ty = ndarray2object( arrays[ 1 ] );\n\n\t// Determine whether we are casting a real data type to a complex data type and we need to use a specialized accessor (note: we don't support the other way, complex-to-real, as this is not an allowed (mostly) safe cast)...\n\tif ( isRealDataType( x.dtype ) && isComplexDataType( y.dtype ) ) {\n\t\tx.accessorProtocol = true;\n\t\tx.accessors[ 0 ] = castReturn( x.accessors[ 0 ], 2, complexCtors( y.dtype ) ); // eslint-disable-line max-len\n\t}\n\t// Verify that the input and output arrays have the same number of dimensions...\n\tshx = x.shape;\n\tshy = y.shape;\n\tndims = shx.length;\n\tif ( ndims !== shy.length ) {\n\t\tthrow new Error( 'invalid arguments. Arrays must have the same number of dimensions (i.e., same rank). ndims(x) == '+ndims+'. ndims(y) == '+shy.length+'.' );\n\t}\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_ASSIGN[ ndims ]( x, y );\n\t\t}\n\t\treturn ASSIGN[ ndims ]( x, y );\n\t}\n\t// Verify that the input and output arrays have the same dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = shx[ i ];\n\t\tif ( d !== shy[ i ] ) {\n\t\t\tthrow new Error( 'invalid arguments. Arrays must have the same shape.' );\n\t\t}\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= d;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( d === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided empty ndarrays...\n\tif ( len === 0 ) {\n\t\treturn;\n\t}\n\t// Determine whether the ndarrays are one-dimensional and thus readily translate to one-dimensional strided arrays...\n\tif ( ndims === 1 ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_ASSIGN[ ndims ]( x, y );\n\t\t}\n\t\treturn ASSIGN[ ndims ]( x, y );\n\t}\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Determine whether the ndarray has only **one** non-singleton dimension (e.g., ndims=4, shape=[10,1,1,1]) so that we can treat the ndarrays as being equivalent to one-dimensional strided arrays...\n\tif ( ns === ndims-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( shx[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tx.shape = [ shx[i] ];\n\t\ty.shape = x.shape;\n\t\tx.strides = [ sx[i] ];\n\t\ty.strides = [ sy[i] ];\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_ASSIGN[ 1 ]( x, y );\n\t\t}\n\t\treturn ASSIGN[ 1 ]( x, y );\n\t}\n\tiox = iterationOrder( sx ); // +/-1\n\tioy = iterationOrder( sy ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tif ( iox !== 0 && ioy !== 0 && x.order === y.order ) {\n\t\t// Determine the minimum and maximum linear indices which are accessible by the array views:\n\t\txmmv = minmaxViewBufferIndex( shx, sx, x.offset );\n\t\tymmv = minmaxViewBufferIndex( shy, sy, y.offset );\n\n\t\t// Determine whether we can ignore shape (and strides) and treat the ndarrays as linear one-dimensional strided arrays...\n\t\tif ( len === ( xmmv[1]-xmmv[0]+1 ) && len === ( ymmv[1]-ymmv[0]+1 ) ) {\n\t\t\t// Note: the above is equivalent to @stdlib/ndarray/base/assert/is-contiguous, but in-lined so we can retain computed values...\n\t\t\tif ( iox === 1 ) {\n\t\t\t\tox = xmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\tox = xmmv[ 1 ];\n\t\t\t}\n\t\t\tif ( ioy === 1 ) {\n\t\t\t\toy = ymmv[ 0 ];\n\t\t\t} else {\n\t\t\t\toy = ymmv[ 1 ];\n\t\t\t}\n\t\t\tx.shape = [ len ];\n\t\t\ty.shape = x.shape;\n\t\t\tx.strides = [ iox ];\n\t\t\ty.strides = [ ioy ];\n\t\t\tx.offset = ox;\n\t\t\ty.offset = oy;\n\t\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_ASSIGN[ 1 ]( x, y );\n\t\t\t}\n\t\t\treturn ASSIGN[ 1 ]( x, y );\n\t\t}\n\t\t// At least one ndarray is non-contiguous, so we cannot directly use one-dimensional array functionality...\n\n\t\t// Determine whether we can use simple nested loops...\n\t\tif ( ndims <= MAX_DIMS ) {\n\t\t\t// So long as iteration for each respective array always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_ASSIGN[ ndims ]( x, y );\n\t\t\t}\n\t\t\treturn ASSIGN[ ndims ]( x, y );\n\t\t}\n\t\t// Fall-through to blocked iteration...\n\t}\n\t// At this point, we're either dealing with non-contiguous n-dimensional arrays, high dimensional n-dimensional arrays, and/or arrays having differing memory layouts, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_ASSIGN[ ndims-2 ]( x, y );\n\t\t}\n\t\treturn BLOCKED_ASSIGN[ ndims-2 ]( x, y );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\treturn accessorassignnd( x, y );\n\t}\n\tassignnd( x, y );\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Assign elements in an input ndarray to elements in an output ndarray.\n*\n* @module @stdlib/ndarray/base/assign\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var assign = require( '@stdlib/ndarray/base/assign' );\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Copy elements:\n* assign( [ x, y ] );\n*\n* console.log( y.data );\n* // => [ 2.0, 3.0, 6.0, 7.0, 10.0, 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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Simultaneously sorts two arrays based on the sort order of the first array using insertion sort.\n*\n* ## Notes\n*\n* - The first array is sorted in increasing order according to absolute value.\n* - The algorithm has space complexity `O(1)` and worst case time complexity `O(N^2)`.\n* - The algorithm is efficient for small arrays (typically `N <= 20``) and is particularly efficient for sorting arrays which are already substantially sorted.\n* - The algorithm is **stable**, meaning that the algorithm does **not** change the order of array elements which are equal or equivalent.\n* - The input arrays are sorted in-place (i.e., the input arrays are mutated).\n*\n* @private\n* @param {Array} x - first array\n* @param {Array} y - second array\n* @returns {void}\n*\n* @example\n* var x = [ -4, -2, 3, 1 ];\n* var y = [ 0, 1, 2, 3 ];\n*\n* sort2ins( x, y );\n*\n* console.log( x );\n* // => [ 1, -2, 3, -4 ]\n*\n* console.log( y );\n* // => [ 3, 1, 2, 0 ]\n*/\nfunction sort2ins( x, y ) {\n\tvar avx;\n\tvar aux;\n\tvar ix;\n\tvar iy;\n\tvar jx;\n\tvar jy;\n\tvar vx;\n\tvar vy;\n\tvar ux;\n\tvar i;\n\n\tix = 1;\n\tiy = 1;\n\n\t// Sort in increasing order...\n\tfor ( i = 1; i < x.length; i++ ) {\n\t\tvx = x[ ix ];\n\t\tavx = ( vx < 0 ) ? -vx : vx;\n\n\t\tvy = y[ iy ];\n\n\t\tjx = ix - 1;\n\t\tjy = iy - 1;\n\n\t\t// Shift all larger values to the left of the current element to the right...\n\t\twhile ( jx >= 0 ) {\n\t\t\tux = x[ jx ];\n\t\t\taux = ( ux < 0 ) ? -ux : ux;\n\t\t\tif ( aux <= avx ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tx[ jx+1 ] = ux;\n\t\t\ty[ jy+1 ] = y[ jy ];\n\t\t\tjx -= 1;\n\t\t\tjy -= 1;\n\t\t}\n\t\tx[ jx+1 ] = vx;\n\t\ty[ jy+1 ] = vy;\n\t\tix += 1;\n\t\tiy += 1;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = sort2ins;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 zeroTo = require( '@stdlib/array/base/zero-to' );\nvar copy = require( '@stdlib/array/base/copy-indexed' );\nvar take = require( '@stdlib/array/base/take-indexed' );\nvar filled = require( '@stdlib/array/base/filled' );\nvar strides2order = require( './../../../base/strides2order' );\nvar sort2ins = require( './sort2ins.js' );\n\n\n// VARIABLES //\n\n// Number of arrays:\nvar N = 3;\n\n\n// MAIN //\n\n/**\n* Reorders ndarray dimensions and associated strides for loop interchange.\n*\n* ## Notes\n*\n* - The returned object has the following properties:\n*\n* - **sh**: dimensions sorted in loop order.\n* - **sx**: first input ndarray strides sorted in loop order.\n* - **sy**: second input ndarray strides sorted in loop order.\n* - **sz**: output ndarray strides sorted in loop order.\n*\n* @param {NonNegativeIntegerArray} sh - array dimensions\n* @param {IntegerArray} sx - first input array stride lengths\n* @param {IntegerArray} sy - second input array stride lengths\n* @param {IntegerArray} sz - output array stride lengths\n* @returns {Object} loop interchange data\n*\n* @example\n* var sh = [ 2, 3, 4 ];\n*\n* var sx = [ 12, 4, 1 ]; // row-major\n* var sy = [ 24, 8, 1 ]; // row-major\n* var sz = [ 1, -2, 6 ]; // column-major\n*\n* var o = loopOrder( sh, sx, sy, sz );\n* // returns {...}\n*\n* var ssh = o.sh;\n* // returns [ 4, 3, 2 ]\n*\n* var ssx = o.sx;\n* // returns [ 1, 4, 12 ]\n*\n* var ssy = o.sy;\n* // returns [ 1, 8, 24 ]\n*\n* var ssz = o.sz;\n* // returns [ 6, -2, 1 ]\n*/\nfunction loopOrder( sh, sx, sy, sz ) {\n\tvar idx;\n\tvar tmp;\n\tvar max;\n\tvar len;\n\tvar arr;\n\tvar ox;\n\tvar oy;\n\tvar oz;\n\tvar i;\n\tvar j;\n\n\t// Initialize a loop interchange index array for generating a loop order permutation:\n\tidx = zeroTo( sh.length );\n\n\t// Determine the order (layout) of each array:\n\tox = strides2order( sx );\n\toy = strides2order( sy );\n\toz = strides2order( sz );\n\n\t// Determine which array should be used to generate the loop order:\n\ttmp = filled( [], 4 );\n\ttmp[ ox ].push( sx );\n\ttmp[ oy ].push( sy );\n\ttmp[ oz ].push( sz );\n\tmax = tmp[ 0 ].length;\n\tif ( max === N ) {\n\t\t// If all arrays are \"disorganized\", then just use the first array, as, generally, each array is likely to be as un-ideal as every other:\n\t\tarr = sx;\n\t} else if ( max === N-1 ) {\n\t\t// If all but one array is \"disorganized\", find the \"organized\" array...\n\t\tfor ( i = 1; i < 4; i++ ) {\n\t\t\tif ( tmp[ i ].length ) {\n\t\t\t\tarr = tmp[ i ][ 0 ];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// Find the layout which is most common...\n\t\tj = 0;\n\t\tfor ( i = 1; i < 4; i++ ) {\n\t\t\tlen = tmp[ i ].length;\n\t\t\tif ( len >= max ) {\n\t\t\t\tmax = len;\n\t\t\t\tj = i;\n\t\t\t}\n\t\t}\n\t\t// Use the strides of the first array having the most common layout:\n\t\tarr = tmp[ j ][ 0 ];\n\t}\n\t// Sort array strides in increasing order (of magnitude):\n\tarr = copy( arr );\n\tsort2ins( arr, idx );\n\n\t// Permute the shape and array strides based on the sorted strides:\n\tsh = take( sh, idx );\n\tsx = ( sx === arr ) ? arr : take( sx, idx );\n\tsy = ( sy === arr ) ? arr : take( sy, idx );\n\tsz = ( sz === arr ) ? arr : take( sz, idx );\n\n\treturn {\n\t\t'sh': sh,\n\t\t'sx': sx,\n\t\t'sy': sy,\n\t\t'sz': sz\n\t};\n}\n\n\n// EXPORTS //\n\nmodule.exports = loopOrder;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Reorder ndarray dimensions and associated strides for loop interchange.\n*\n* @module @stdlib/ndarray/base/binary-loop-interchange-order\n*\n* @example\n* var binaryLoopOrder = require( '@stdlib/ndarray/base/binary-loop-interchange-order' );\n*\n* var sh = [ 2, 3, 4 ];\n*\n* var sx = [ 12, 4, 1 ]; // row-major\n* var sy = [ 24, 8, 1 ]; // row-major\n* var sz = [ 1, -2, 6 ]; // column-major\n*\n* var o = loopOrder( sh, sx, sy, sz );\n* // returns {...}\n*\n* var ssh = o.sh;\n* // returns [ 4, 3, 2 ]\n*\n* var ssx = o.sx;\n* // returns [ 1, 4, 12 ]\n*\n* var ssy = o.sy;\n* // returns [ 1, 8, 24 ]\n*\n* var ssz = o.sz;\n* // returns [ 6, -2, 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\nvar defaults = {\n\t// Define a default block size (in bytes):\n\t'BLOCK_SIZE_IN_BYTES': 64|0, // 64b is a common cache line size. How applicable the common cache line size is here is debatable, given that, depending on the associated stride(s), the innermost loop may not iterate over adjacent elements. The primary goal is to have a block size in which all data within a block can always fit in (L1) cache, regardless of cache size (i.e., cache-oblivious). For reference, a common L1 cache size is 32kB per core. For best performance, block sizes should be tuned based on system hardware; however, such tuning is not readily available to us here. Without obvious better alternatives, 64b has some theoretical (and practical) underpinning, and it should be good enough for most inputs, especially for ndarrays with near contiguity.\n\n\t// Define a default block size (in elements):\n\t'BLOCK_SIZE_IN_ELEMENTS': 8|0 // 64 bytes / 8 bytes per element (i.e., default element size is same as a double)\n};\n\n\n// EXPORTS //\n\nmodule.exports = defaults;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 bytesPerElement = require( './../../../base/bytes-per-element' );\nvar defaults = require( './defaults.js' );\n\n\n// MAIN //\n\n/**\n* Returns a loop block size for multi-dimensional array tiled loops.\n*\n* @param {string} dtypeX - first input array data type\n* @param {string} dtypeY - second input array data type\n* @param {string} dtypeZ - output array data type\n* @returns {integer} block size (in units of elements)\n*\n* @example\n* var bsize = binaryBlockSize( 'float64', 'float64', 'float64' );\n* // returns \n*/\nfunction binaryBlockSize( dtypeX, dtypeY, dtypeZ ) {\n\tvar nbx;\n\tvar nby;\n\tvar nbz;\n\n\tnbx = bytesPerElement( dtypeX );\n\tnby = bytesPerElement( dtypeY );\n\tnbz = bytesPerElement( dtypeZ );\n\tif ( nbx === null || nby === null || nbz === null ) { // e.g., \"generic\" arrays\n\t\treturn defaults.BLOCK_SIZE_IN_ELEMENTS;\n\t}\n\tif ( nbx > nby && nbx > nbz ) {\n\t\treturn ( defaults.BLOCK_SIZE_IN_BYTES/nbx )|0; // asm type annotation\n\t}\n\tif ( nby > nbz ) {\n\t\treturn ( defaults.BLOCK_SIZE_IN_BYTES/nby )|0; // asm type annotation\n\t}\n\treturn ( defaults.BLOCK_SIZE_IN_BYTES/nbz )|0; // asm type annotation\n}\n\n\n// EXPORTS //\n\nmodule.exports = binaryBlockSize;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Resolve a loop block size for multi-dimensional array tiled loops.\n*\n* @module @stdlib/ndarray/base/binary-tiling-block-size\n*\n* @example\n* var binaryBlockSize = require( '@stdlib/ndarray/base/binary-tiling-block-size' );\n*\n* var bsize = binaryBlockSize( 'float64', 'float64', 'float64' );\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 format = require( '@stdlib/string/format' );\nvar trunc = require( '@stdlib/math/base/special/trunc' );\nvar abs = require( '@stdlib/math/base/special/abs' );\n\n\n// MAIN //\n\n/**\n* Converts a linear index in an underlying data buffer to a linear index in an array view.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - location of the first indexed value **based** on the stride array\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @param {integer} idx - linear index in an underlying data buffer\n* @param {string} mode - specifies how to handle a linear index which exceeds array dimensions\n* @throws {RangeError} linear index must not exceed array dimensions\n* @returns {NonNegativeInteger} linear index in an array view\n*\n* @example\n* var shape = [ 3, 3 ];\n* var strides = [ -3, 1 ];\n* var offset = 6;\n* var order = 'row-major';\n* var mode = 'throw';\n*\n* var ind = bind2vind( shape, strides, offset, order, 7, mode );\n* // returns 1\n*/\nfunction bind2vind( shape, strides, offset, order, idx, mode ) {\n\tvar ndims;\n\tvar len;\n\tvar ind;\n\tvar k;\n\tvar s;\n\tvar i;\n\n\tndims = shape.length;\n\tlen = 1;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tlen *= shape[ i ];\n\t}\n\tif ( mode === 'clamp' ) {\n\t\tif ( idx < 0 ) {\n\t\t\tidx = 0;\n\t\t} else if ( idx >= len ) {\n\t\t\tidx = len - 1;\n\t\t}\n\t} else if ( mode === 'wrap' ) {\n\t\tif ( idx < 0 ) {\n\t\t\tidx += len; // slight optimization to avoid modulo arithmetic when |idx| <= len\n\t\t\tif ( idx < 0 ) {\n\t\t\t\tidx %= len;\n\t\t\t\tif ( idx !== 0 ) {\n\t\t\t\t\tidx += len;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if ( idx >= len ) {\n\t\t\tidx -= len; // slight optimization to avoid modulo arithmetic when len < idx <= 2*len\n\t\t\tif ( idx >= len ) {\n\t\t\t\tidx %= len;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif ( mode === 'normalize' && idx < 0 ) {\n\t\t\tidx += len;\n\t\t}\n\t\tif ( idx < 0 || idx >= len ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Linear index must not exceed array dimensions. Number of array elements: `%u`. Value: `%d`.', len, idx ) );\n\t\t}\n\t}\n\t// The approach which follows is to resolve a buffer index to its subscripts and then plug the subscripts into the standard formula for computing the linear index in the array view (i.e., where all strides are positive and offset is 0)...\n\tind = 0;\n\tif ( order === 'column-major' ) {\n\t\tfor ( i = ndims-1; i >= 0; i-- ) {\n\t\t\ts = strides[ i ];\n\t\t\tif ( s < 0 ) {\n\t\t\t\tk = trunc( idx/s );\n\t\t\t\tidx -= k * s;\n\t\t\t\tk += shape[ i ] - 1;\n\t\t\t} else {\n\t\t\t\tk = trunc( idx/s );\n\t\t\t\tidx -= k * s;\n\t\t\t}\n\t\t\tind += k * abs( s );\n\t\t}\n\t\treturn ind;\n\t}\n\t// Case: row-major\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\ts = strides[ i ];\n\t\tif ( s < 0 ) {\n\t\t\tk = trunc( idx/s );\n\t\t\tidx -= k * s;\n\t\t\tk += shape[ i ] - 1;\n\t\t} else {\n\t\t\tk = trunc( idx/s );\n\t\t\tidx -= k * s;\n\t\t}\n\t\tind += k * abs( s );\n\t}\n\treturn ind;\n}\n\n\n// EXPORTS //\n\nmodule.exports = bind2vind;\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 a linear index in an underlying data buffer to a linear index in an array view.\n*\n* @module @stdlib/ndarray/base/bind2vind\n*\n* @example\n* var bind2vind = require( '@stdlib/ndarray/base/bind2vind' );\n*\n* var shape = [ 3, 3 ];\n* var strides = [ -3, 1 ];\n* var offset = 6;\n* var order = 'row-major';\n* var mode = 'throw';\n*\n* var ind = bind2vind( shape, strides, offset, order, 7, mode );\n* // returns 1\n*/\n\n// MODULES //\n\nvar bind2vind = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = bind2vind;\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 copy = require( '@stdlib/array/base/copy-indexed' );\nvar ndarray = require( './../../../base/ctor' );\nvar getShape = require( './../../../base/shape' );\nvar getStrides = require('./../../../base/strides' );\nvar getOffset = require( './../../../base/offset' );\nvar getOrder = require( './../../../base/order' );\nvar getDType = require( './../../../base/dtype' );\nvar getData = require( './../../../base/data-buffer' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Broadcasts an ndarray to a specified shape.\n*\n* ## Notes\n*\n* - The returned array is a view on the input array data buffer. The view is typically **not** contiguous. As more than one element of a returned view may refer to the same memory location, writing to the view may affect multiple elements. If you need to write to the returned array, copy the array before performing operations which may mutate elements.\n*\n* @param {ndarray} arr - input array\n* @param {NonNegativeIntegerArray} shape - desired 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 shape\n* @throws {Error} input array and desired shape must be broadcast compatible\n* @returns {ndarray} broadcasted array\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var shx = x.shape;\n* // returns [ 2, 2 ]\n*\n* var y = broadcastArray( x, [ 3, 2, 2 ] );\n* // returns \n*\n* var shy = y.shape;\n* // returns [ 3, 2, 2 ]\n*\n* var v = y.get( 0, 0, 0 );\n* // returns 1\n*\n* v = y.get( 0, 0, 1 );\n* // returns 2\n*\n* v = y.get( 1, 0, 0 );\n* // returns 1\n*\n* v = y.get( 1, 1, 0 );\n* // returns 3\n*\n* v = y.get( 2, 0, 0 );\n* // returns 1\n*\n* v = y.get( 2, 1, 1 );\n* // returns 4\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var y = broadcastArray( x, [ 3, 2 ] );\n* // throws \n*/\nfunction broadcastArray( arr, shape ) {\n\tvar strides;\n\tvar dim;\n\tvar sh;\n\tvar st;\n\tvar N;\n\tvar M;\n\tvar d;\n\tvar i;\n\tvar j;\n\n\tN = shape.length;\n\tsh = getShape( arr, false );\n\tM = sh.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// Initialize a strides array...\n\tstrides = [];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tstrides.push( 0 );\n\t}\n\t// Determine the output array strides...\n\tst = getStrides( arr, false );\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 = sh[ j ];\n\t\tdim = shape[ 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( sh ).join( ', ' ), copy( shape ).join( ', ' ), i ) );\n\t\t}\n\t\tif ( d === dim ) {\n\t\t\tstrides[ i ] = st[ j ];\n\t\t} else if ( d === 1 ) {\n\t\t\t// In order to broadcast dimensions, we set the stride for that dimension to zero...\n\t\t\tstrides[ 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( sh ).join( ', ' ), copy( shape ).join( ', ' ), i ) );\n\t\t}\n\t}\n\treturn ndarray( getDType( arr ), getData( arr ), copy( shape ), strides, getOffset( arr ), getOrder( arr ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nmodule.exports = broadcastArray;\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* Broadcast an ndarray to a specified shape.\n*\n* @module @stdlib/ndarray/base/broadcast-array\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n* var broadcastArray = require( '@stdlib/ndarray/base/broadcast-array' );\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var shx = x.shape;\n* // returns [ 2, 2 ]\n*\n* var y = broadcastArray( x, [ 3, 2, 2 ] );\n* // returns \n*\n* var shy = y.shape;\n* // returns [ 3, 2, 2 ]\n*\n* var v = y.get( 0, 0, 0 );\n* // returns 1\n*\n* v = y.get( 0, 0, 1 );\n* // returns 2\n*\n* v = y.get( 1, 0, 0 );\n* // returns 1\n*\n* v = y.get( 1, 1, 0 );\n* // returns 3\n*\n* v = y.get( 2, 0, 0 );\n* // returns 1\n*\n* v = y.get( 2, 1, 1 );\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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( '@stdlib/array/base/assert/is-accessor-array' );\nvar accessorSetter = require( '@stdlib/array/base/accessor-setter' );\nvar setter = require( '@stdlib/array/base/setter' );\nvar zeros = require( '@stdlib/array/base/zeros' );\nvar buffer = require( './../../../base/buffer' );\nvar ndarray = require( './../../../base/ctor' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Broadcasts a scalar value to an ndarray having a specified shape.\n*\n* @param {*} value - scalar value\n* @param {string} dtype - output array data type\n* @param {NonNegativeIntegerArray} shape - output array shape\n* @param {string} order - memory layout (either row-major or column-major)\n* @throws {TypeError} second argument must be a recognized data type\n* @returns {ndarray} ndarray\n*\n* @example\n* var x = broadcastScalar( 1.0, 'float64', [ 2, 2 ], 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 2, 2 ]\n*\n* var dt = x.dtype;\n* // returns 'float64'\n*\n* var v = x.get( 0, 1 );\n* // returns 1.0\n*/\nfunction broadcastScalar( value, dtype, shape, order ) {\n\tvar buf;\n\tvar set;\n\n\tbuf = buffer( dtype, 1 );\n\tif ( buf === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a recognized data type. Value: `%s`.', dtype ) );\n\t}\n\tif ( /^complex/.test( dtype ) && typeof value === 'number' ) {\n\t\tvalue = [ value, 0.0 ]; // note: we're assuming that the ComplexXXArray setter accepts an array of interleaved real and imaginary components\n\t}\n\tif ( isAccessorArray( buf ) ) {\n\t\tset = accessorSetter( dtype );\n\t} else {\n\t\tset = setter( dtype );\n\t}\n\tset( buf, 0, value );\n\treturn new ndarray( dtype, buf, shape, zeros( shape.length ), 0, order );\n}\n\n\n// EXPORTS //\n\nmodule.exports = broadcastScalar;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 a scalar value to an ndarray having a specified shape.\n*\n* @module @stdlib/ndarray/base/broadcast-scalar\n*\n* @example\n* var broadcastScalar = require( '@stdlib/ndarray/base/broadcast-scalar' );\n*\n* var x = broadcastScalar( 1.0, 'float64', [ 2, 2 ], 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 2, 2 ]\n*\n* var dt = x.dtype;\n* // returns 'float64'\n*\n* var v = x.get( 0, 1 );\n* // returns 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) 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* Broadcasts array shapes to a single shape.\n*\n* ## Notes\n*\n* - Two respective dimensions in two shape arrays are compatible if\n*\n* 1. the dimensions are equal.\n* 2. one dimension is `1`.\n*\n* - The function returns `null` if provided incompatible shapes (i.e., shapes which cannot be broadcast with one another).\n*\n* @param {Array} shapes - array of shape arrays\n* @returns {(NonNegativeIntegerArray|null)} broadcast shape (or `null`)\n*\n* @example\n* var shapes = [\n* [ 8, 1, 6, 1 ],\n* [ 7, 1, 5 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 8, 7, 6, 5 ]\n*\n* @example\n* var shapes = [\n* [ 5, 4 ],\n* [ 1 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 5, 4 ]\n*\n* @example\n* var shapes = [\n* [ 5, 4 ],\n* [ 4 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 5, 4 ]\n*\n* @example\n* var shapes = [\n* [ 15, 3, 5 ],\n* [ 15, 1, 5 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 15, 3, 5 ]\n*\n* @example\n* var shapes = [\n* [ 15, 3, 5 ],\n* [ 3, 5 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 15, 3, 5 ]\n*\n* @example\n* var shapes = [\n* [ 15, 3, 5 ],\n* [ 3, 1 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 15, 3, 5 ]\n*\n* @example\n* var shapes = [\n* [ 8, 1, 1, 6, 1 ],\n* [ 1, 7, 1, 5 ],\n* [ 8, 4, 1, 6, 5 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 8, 4, 7, 6, 5 ]\n*\n* @example\n* var shapes = [\n* [ 8, 1, 1, 6, 1 ],\n* [ 0 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 8, 1, 1, 6, 0 ]\n*\n* @example\n* var shapes = [\n* [ 8, 1, 1, 6, 1 ],\n* [ 8, 0, 1, 6, 1 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 8, 0, 1, 6, 1 ]\n*\n* @example\n* var shapes = [\n* [ 8, 8, 1, 6, 1 ],\n* [ 8, 0, 1, 6, 1 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns null\n*\n* @example\n* var shapes = [\n* [ 8, 0, 1, 6, 1 ],\n* [ 8, 8, 1, 6, 1 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns null\n*\n* @example\n* var shapes = [\n* []\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns []\n*\n* @example\n* var shapes = [\n* [],\n* []\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns []\n*\n* @example\n* var shapes = [];\n*\n* var out = broadcastShapes( shapes );\n* // returns []\n*\n* @example\n* var shapes = [\n* [ 3, 2, 1 ],\n* []\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 3, 2, 1 ]\n*\n* @example\n* var shapes = [\n* [],\n* [ 3, 2, 1 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 3, 2, 1 ]\n*/\nfunction broadcastShapes( shapes ) {\n\tvar ndims;\n\tvar out;\n\tvar dim;\n\tvar sh;\n\tvar n1;\n\tvar n2;\n\tvar d;\n\tvar M;\n\tvar N;\n\tvar i;\n\tvar j;\n\n\tM = shapes.length;\n\tout = [];\n\tif ( M === 0 ) {\n\t\treturn out;\n\t}\n\tsh = shapes[ 0 ];\n\tN = sh.length;\n\n\t// If provided a single input shape array, then the broadcast shape is input shape...\n\tif ( M === 1 ) {\n\t\t// Need to manually copy to output shape, as shapes could be array-like objects...\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tout.push( sh[ i ] );\n\t\t}\n\t\treturn out;\n\t}\n\t// Determine the maximum dimensionality...\n\tndims = [ N ];\n\tfor ( i = 1; i < M; i++ ) {\n\t\tndims.push( shapes[ i ].length );\n\t\tif ( ndims[ i ] > N ) {\n\t\t\tN = ndims[ i ];\n\t\t}\n\t}\n\t// Initialize the output array...\n\tfor ( i = 0; i < N; i++ ) {\n\t\tout.push( 0 );\n\t}\n\t// Compute the broadcast shape...\n\ti = N - 1;\n\twhile ( i >= 0 ) {\n\t\tn1 = ndims[ 0 ] - N + i;\n\t\tif ( n1 >= 0 ) {\n\t\t\tdim = sh[ n1 ];\n\t\t} else {\n\t\t\tdim = 1;\n\t\t}\n\t\tfor ( j = 1; j < M; j++ ) {\n\t\t\tn2 = ndims[ j ] - N + i;\n\t\t\tif ( n2 >= 0 ) {\n\t\t\t\td = shapes[ j ][ n2 ];\n\t\t\t} else {\n\t\t\t\td = 1;\n\t\t\t}\n\t\t\tif ( dim === 1 ) {\n\t\t\t\tdim = d;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif ( d === 1 || dim === d ) {\n\t\t\t\t// When either `d` is `1` or `d` equals the current output shape dimension, the current output shape dimension remains the same...\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\t// The current shape cannot be broadcast against one of the other shapes...\n\t\t\treturn null;\n\t\t}\n\t\tout[ i ] = dim;\n\t\ti -= 1;\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = broadcastShapes;\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* Broadcast array shapes to a single shape.\n*\n* @module @stdlib/ndarray/base/broadcast-shapes\n*\n* @example\n* var broadcastShapes = require( '@stdlib/ndarray/base/broadcast-shapes' );\n*\n* var shapes = [\n* [ 8, 1, 6, 1 ],\n* [ 7, 1, 5 ]\n* ];\n*\n* var out = broadcastShapes( shapes );\n* // returns [ 8, 7, 6, 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) 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 str2enum = require( './../../../base/dtype-str2enum' );\nvar dtype = require( './../../../base/buffer-dtype' );\n\n\n// MAIN //\n\n/**\n* Returns the data type enumeration constant for a provided ndarray data buffer.\n*\n* @param {Collection} arr - strided array\n* @returns {(integer|null)} data type enumeration constant or null\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var x = new Float64Array( 10 );\n*\n* var c = dtypeEnum( x );\n* // returns \n*/\nfunction dtypeEnum( arr ) {\n\tvar dt = dtype( arr );\n\tif ( dt ) {\n\t\treturn str2enum( dt );\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = dtypeEnum;\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* Return the data type enumeration constant for an ndarray data buffer.\n*\n* @module @stdlib/ndarray/base/buffer-dtype-enum\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var dtypeEnum = require( '@stdlib/ndarray/base/buffer-dtype-enum' );\n*\n* var x = new Float64Array( 10 );\n*\n* var c = dtypeEnum( x );\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) 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 an object mapping data type strings to single letter abbreviations.\n*\n* @private\n* @returns {Object} object mapping data type string to single letter abbreviations\n*/\nfunction table() {\n\treturn {\n\t\t'binary': 'r',\n\n\t\t'bool': 'x',\n\n\t\t'complex64': 'c',\n\t\t'complex128': 'z',\n\n\t\t'float16': 'h',\n\t\t'bfloat16': 'e',\n\t\t'float32': 'f',\n\t\t'float64': 'd',\n\t\t'float128': 'g',\n\n\t\t'generic': 'o',\n\n\t\t'int8': 's',\n\t\t'int16': 'k',\n\t\t'int32': 'i',\n\t\t'int64': 'l',\n\t\t'int128': 'm',\n\t\t'int256': 'n',\n\n\t\t'uint8': 'b',\n\t\t'uint8c': 'a',\n\t\t'uint16': 't',\n\t\t'uint32': 'u',\n\t\t'uint64': 'v',\n\t\t'uint128': 'w',\n\t\t'uint256': 'y'\n\t};\n}\n\n\n// EXPORTS //\n\nmodule.exports = table;\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 resolve = require( './../../../base/dtype-resolve-str' );\nvar table = require( './table.js' );\n\n\n// VARIABLES //\n\nvar TABLE;\n\n\n// MAIN //\n\n/**\n* Returns the single letter character abbreviation for an underlying array data type.\n*\n* @param {*} [dtype] - data type value\n* @returns {(Object|string|null)} single letter character abbreviation(s)\n*\n* @example\n* var obj = dtypeChar();\n* // returns {...}\n*\n* @example\n* var ch = dtypeChar( 'float64' );\n* // returns 'd'\n*\n* ch = dtypeChar( 'generic' );\n* // returns 'o'\n*/\nfunction dtypeChar( dtype ) {\n\tif ( arguments.length === 0 ) {\n\t\treturn table();\n\t}\n\tif ( TABLE === void 0 ) {\n\t\tTABLE = table();\n\t}\n\treturn TABLE[ resolve( dtype ) ] || null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = dtypeChar;\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 single letter character abbreviation for an underlying array data type.\n*\n* @module @stdlib/ndarray/base/dtype-char\n*\n* @example\n* var dtypeChar = require( '@stdlib/ndarray/base/dtype-char' );\n*\n* var ch = dtypeChar( 'float64' );\n* // returns 'd'\n*\n* ch = dtypeChar( 'generic' );\n* // returns 'o'\n*\n* @example\n* var dtypeChar = require( '@stdlib/ndarray/base/dtype-char' );\n*\n* var obj = dtypeChar();\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) 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 objectInverse = require( '@stdlib/utils/object-inverse' );\nvar dtypeChar = require( './../../../base/dtype-char' );\n\n\n// VARIABLES //\n\nvar TABLE;\n\n\n// MAIN //\n\n/**\n* Returns the data type string associated with a provided single letter abbreviation.\n*\n* @param {string} ch - single letter character abbreviation\n* @returns {(Object|string|null)} data type string\n*\n* @example\n* var obj = char2dtype();\n* // returns {...}\n*\n* @example\n* var out = char2dtype( 'd' );\n* // returns 'float64'\n*\n* out = char2dtype( '(' );\n* // returns null\n*/\nfunction char2dtype( ch ) {\n\tif ( arguments.length === 0 ) {\n\t\treturn objectInverse( dtypeChar() );\n\t}\n\tif ( TABLE === void 0 ) {\n\t\tTABLE = objectInverse( dtypeChar() );\n\t}\n\treturn TABLE[ ch ] || null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = char2dtype;\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* Return the data type string associated with a provided single letter abbreviation.\n*\n* @module @stdlib/ndarray/base/char2dtype\n*\n* @example\n* var char2dtype = require( '@stdlib/ndarray/base/char2dtype' );\n*\n* var out = char2dtype();\n* // returns {...}\n*\n* @example\n* var char2dtype = require( '@stdlib/ndarray/base/char2dtype' );\n*\n* var out = char2dtype( 'd' );\n* // returns 'float64'\n*\n* out = char2dtype( '(' );\n* // returns null\n*/\n\n// MODULES //\n\nvar char2dtype = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = char2dtype;\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 an object mapping data type strings to descriptions.\n*\n* @private\n* @returns {Object} object mapping data type strings to descriptions\n*/\nfunction table() {\n\treturn {\n\t\t'binary': 'byte',\n\n\t\t'bool': 'boolean',\n\n\t\t'complex64': 'single-precision floating-point complex number',\n\t\t'complex128': 'double-precision floating-point complex number',\n\n\t\t'float16': 'half-precision floating-point number',\n\t\t'bfloat16': 'brain floating-point number',\n\t\t'float32': 'single-precision floating-point number',\n\t\t'float64': 'double-precision floating-point number',\n\t\t'float128': 'quadruple-precision floating-point number',\n\n\t\t'generic': 'generic array value',\n\n\t\t'int8': 'signed 8-bit integer',\n\t\t'int16': 'signed 16-bit integer',\n\t\t'int32': 'signed 32-bit integer',\n\t\t'int64': 'signed 64-bit integer',\n\t\t'int128': 'signed 128-bit integer',\n\t\t'int256': 'signed 256-bit integer',\n\n\t\t'uint8': 'unsigned 8-bit integer',\n\t\t'uint8c': 'unsigned 8-bit integer (clamped)',\n\t\t'uint16': 'unsigned 16-bit integer',\n\t\t'uint32': 'unsigned 32-bit integer',\n\t\t'uint64': 'unsigned 64-bit integer',\n\t\t'uint128': 'unsigned 128-bit integer',\n\t\t'uint256': 'unsigned 256-bit integer'\n\t};\n}\n\n\n// EXPORTS //\n\nmodule.exports = table;\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 resolve = require( './../../../base/dtype-resolve-str' );\nvar table = require( './table.js' );\n\n\n// VARIABLES //\n\nvar TABLE;\n\n\n// MAIN //\n\n/**\n* Returns the description for a provided data type.\n*\n* @param {*} [dtype] - data type value\n* @returns {(Object|string|null)} description(s)\n*\n* @example\n* var obj = dtypeDesc();\n* // returns {...}\n*\n* @example\n* var desc = dtypeDesc( 'float64' );\n* // returns '...'\n*\n* desc = dtypeDesc( 'generic' );\n* // returns '...'\n*/\nfunction dtypeDesc( dtype ) {\n\tif ( arguments.length === 0 ) {\n\t\treturn table();\n\t}\n\tif ( TABLE === void 0 ) {\n\t\tTABLE = table();\n\t}\n\treturn TABLE[ resolve( dtype ) ] || null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = dtypeDesc;\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* Return the description for a specified data type.\n*\n* @module @stdlib/ndarray/base/dtype-desc\n*\n* @example\n* var dtypeDesc = require( '@stdlib/ndarray/base/dtype-desc' );\n*\n* var out = dtypeDesc( 'float64' );\n* // returns '...'\n*\n* out = dtypeDesc( 'generic' );\n* // returns '...'\n*\n* @example\n* var dtypeDesc = require( '@stdlib/ndarray/base/dtype-desc' );\n*\n* var obj = dtypeDesc();\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) 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 enum2str = require( './../../../base/dtype-enum2str' );\nvar str2enum = require( './../../../base/dtype-str2enum' );\n\n\n// MAIN //\n\n/**\n* Returns the enumeration constant associated with a supported ndarray data type value.\n*\n* ## Notes\n*\n* - Downstream consumers of this function should **not** rely on specific integer values (e.g., `INT8 == 0`). Instead, the function should be used in an opaque manner.\n*\n* @param {*} dtype - data type value\n* @returns {(integer|null)} enumeration constant or null\n*\n* @example\n* var v = resolve( 'int8' );\n* // returns \n*/\nfunction resolve( dtype ) {\n\tvar t = ( typeof dtype );\n\tif ( t === 'number' ) {\n\t\treturn ( enum2str( dtype ) ) ? dtype : null;\n\t}\n\tif ( t === 'string' ) {\n\t\treturn str2enum( dtype );\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = resolve;\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* Return the enumeration constant associated with a supported ndarray data type value.\n*\n* @module @stdlib/ndarray/base/dtype-resolve-enum\n*\n* @example\n* var resolve = require( '@stdlib/ndarray/base/dtype-resolve-enum' );\n*\n* var v = resolve( 'float64' );\n* // returns \n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "{\n\t\"binary\": null,\n\t\"bool\": \"bool\",\n\t\"complex64\": \"stdlib_complex64_t\",\n\t\"complex128\": \"stdlib_complex128_t\",\n\t\"float16\": null,\n\t\"bfloat16\": null,\n\t\"float32\": \"float\",\n\t\"float64\": \"double\",\n\t\"float128\": null,\n\t\"generic\": null,\n\t\"int8\": \"int8_t\",\n\t\"int16\": \"int16_t\",\n\t\"int32\": \"int32_t\",\n\t\"int64\": \"int64_t\",\n\t\"int128\": null,\n\t\"int256\": null,\n\t\"uint8\": \"uint8_t\",\n\t\"uint8c\": null,\n\t\"uint16\": \"uint16_t\",\n\t\"uint32\": \"uint32_t\",\n\t\"uint64\": \"uint64_t\",\n\t\"uint128\": null,\n\t\"uint256\": null\n}\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 resolve = require( './../../../base/dtype-resolve-str' );\nvar TABLE = require( './table.json' );\n\n\n// MAIN //\n\n/**\n* Returns the C data type associated with a provided data type string.\n*\n* @param {*} dtype - data type value\n* @returns {(string|null)} C data type\n*\n* @example\n* var out = dtype2c( 'float64' );\n* // returns 'double'\n*\n* out = dtype2c( 'generic' );\n* // returns null\n*/\nfunction dtype2c( dtype ) {\n\treturn TABLE[ resolve( dtype ) ] || null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = dtype2c;\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* Return the C data type associated with a provided data type value.\n*\n* @module @stdlib/ndarray/base/dtype2c\n*\n* @example\n* var dtype2c = require( '@stdlib/ndarray/base/dtype2c' );\n*\n* var out = dtype2c( 'float64' );\n* // returns 'double'\n*\n* out = dtype2c( 'generic' );\n* // returns null\n*/\n\n// MODULES //\n\nvar dtype2c = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = dtype2c;\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 isArrayLikeObject = require( '@stdlib/assert/is-array-like-object' );\nvar isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar resolve = require( './../../../base/dtype-resolve-str' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Transforms a list of array argument data types into a list of signatures.\n*\n* @param {ArrayLikeObject} dtypes - list of array argument data types\n* @param {NonNegativeInteger} nin - number of input array arguments\n* @param {NonNegativeInteger} nout - number of output array arguments\n* @throws {TypeError} first argument must be an array-like object\n* @throws {TypeError} second argument must be a nonnegative integer\n* @throws {TypeError} third argument must be a nonnegative integer\n* @throws {RangeError} first argument must contain at least one element\n* @throws {RangeError} length of the first argument is incompatible with the second and third arguments\n* @returns {StringArray} list of signatures\n*\n* @example\n* var dtypes = [\n* 'float64', 'float64',\n* 'float32', 'float32'\n* ];\n*\n* var sigs = dtypes2signatures( dtypes, 1, 1 );\n* // returns [ '(float64) => (float64)', '(float32) => (float32)' ]\n*/\nfunction dtypes2signatures( dtypes, nin, nout ) {\n\tvar len;\n\tvar out;\n\tvar tmp;\n\tvar dt;\n\tvar N;\n\tvar M;\n\tvar i;\n\tvar m;\n\n\tif ( !isArrayLikeObject( dtypes ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object. Value: `%s`.', dtypes ) );\n\t}\n\tif ( !isNonNegativeInteger( nin ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a nonnegative integer. Value: `%s`.', nin ) );\n\t}\n\tif ( !isNonNegativeInteger( nout ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be a nonnegative integer. Value: `%s`.', nout ) );\n\t}\n\tlen = dtypes.length;\n\tif ( len === 0 ) {\n\t\tthrow new RangeError( 'invalid argument. First argument must contain at least one element.' );\n\t}\n\tN = nin + nout;\n\tif ( len%N !== 0 ) {\n\t\tthrow new RangeError( 'invalid arguments. Length of the first argument is incompatible with the second and third arguments.' );\n\t}\n\tout = [];\n\n\t// Create a temporary array for storing signatures...\n\ttmp = [];\n\n\t// [ '(', , ', ', ..., ') => (', , ', ', ..., ')' ] => 1+nin+nin-1+1+nout+nout-1+1 => 1 + (2*nin) + (2*nout) => 1 + (2*(nin+nout))\n\tM = 2 * N;\n\tm = 2 * nin;\n\tfor ( i = 0; i <= M; i++ ) {\n\t\tif ( i === 0 ) {\n\t\t\tif ( i === m ) {\n\t\t\t\ttmp.push( '() => (' );\n\t\t\t} else {\n\t\t\t\ttmp.push( '(' );\n\t\t\t}\n\t\t} else if ( i === M ) {\n\t\t\tif ( i === m ) {\n\t\t\t\ttmp.push( ') => ()' );\n\t\t\t} else {\n\t\t\t\ttmp.push( ')' );\n\t\t\t}\n\t\t} else if ( i === m ) {\n\t\t\ttmp.push( ') => (' );\n\t\t} else if ( i%2 === 1 ) {\n\t\t\ttmp.push( '' );\n\t\t} else {\n\t\t\ttmp.push( ', ' );\n\t\t}\n\t}\n\tfor ( i = 0; i < len; i++ ) {\n\t\tdt = resolve( dtypes[ i ] );\n\t\tif ( dt === null ) {\n\t\t\tdt = dtypes[ i ];\n\t\t}\n\t\tm = i % N;\n\t\ttmp[ (2*m)+1 ] = dt;\n\t\tif ( m === N-1 ) {\n\t\t\tout.push( tmp.join( '' ) );\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = dtypes2signatures;\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* Transform a list of array argument data types into a list of signatures.\n*\n* @module @stdlib/ndarray/base/dtypes2signatures\n*\n* @example\n* var dtypes2signatures = require( '@stdlib/ndarray/base/dtypes2signatures' );\n*\n* var dtypes = [\n* 'float64', 'float64',\n* 'float32', 'float32'\n* ];\n*\n* var sigs = dtypes2signatures( dtypes, 2, 0 );\n* // returns [ '(float64) => (float64)', '(float32) => (float32)' ]\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( './../../../base/shape2strides' );\nvar strides2offset = require( './../../../base/strides2offset' );\nvar ndarray = require( './../../../base/ctor' );\nvar numel = require( './../../../base/numel' );\nvar emptyArray = require( '@stdlib/array/empty' );\nvar allocUnsafe = require( '@stdlib/buffer/alloc-unsafe' );\n\n\n// MAIN //\n\n/**\n* Creates an uninitialized ndarray having a specified shape and data type.\n*\n* @param {string} dtype - data type\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - array order\n* @throws {TypeError} first argument must be a recognized data type\n* @returns {ndarray} ndarray\n*\n* @example\n* var arr = empty( 'float32', [ 2, 2 ], 'row-major' );\n* // returns \n*\n* var sh = arr.shape;\n* // returns [ 2, 2 ]\n*\n* var dt = arr.dtype;\n* // returns 'float32'\n*/\nfunction empty( dtype, shape, order ) {\n\tvar ndims;\n\tvar buf;\n\tvar len;\n\tvar st;\n\n\tndims = shape.length;\n\tif ( ndims > 0 ) {\n\t\tlen = numel( shape );\n\t\tst = shape2strides( shape, order );\n\t} else {\n\t\t// For 0-dimensional arrays, the buffer should contain a single element...\n\t\tlen = 1;\n\t\tst = [ 0 ];\n\t}\n\tif ( dtype === 'binary' ) {\n\t\tbuf = allocUnsafe( len );\n\t} else {\n\t\tbuf = emptyArray( len, dtype );\n\t}\n\treturn new ndarray( dtype, buf, shape, st, strides2offset( shape, st ), order ); // eslint-disable-line max-len\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 ndarray having a specified shape and data type.\n*\n* @module @stdlib/ndarray/base/empty\n*\n* @example\n* var empty = require( '@stdlib/ndarray/base/empty' );\n*\n* var arr = empty( 'float32', [ 2, 2 ], 'row-major' );\n* // returns \n*\n* var sh = arr.shape;\n* // returns [ 2, 2 ]\n*\n* var dt = arr.dtype;\n* // returns 'float32'\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( './../../../base/shape2strides' );\nvar strides2offset = require( './../../../base/strides2offset' );\nvar numel = require( './../../../base/numel' );\nvar getDType = require( './../../../base/dtype' );\nvar getShape = require( './../../../base/shape' );\nvar getOrder = require( './../../../base/order' );\nvar emptyArray = require( '@stdlib/array/empty' );\nvar allocUnsafe = require( '@stdlib/buffer/alloc-unsafe' );\n\n\n// MAIN //\n\n/**\n* Creates an uninitialized ndarray having the same shape and data type as a provided ndarray.\n*\n* @param {ndarray} x - input array\n* @throws {TypeError} first argument must have a recognized data type\n* @returns {ndarray} ndarray\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/base/zeros' );\n*\n* var x = zeros( 'float32', [ 2, 2 ], 'row-major' );\n* // returns \n*\n* var y = emptyLike( x );\n* // returns \n*\n* var sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* var dt = y.dtype;\n* // returns 'float32'\n*/\nfunction emptyLike( x ) {\n\tvar ndims;\n\tvar len;\n\tvar buf;\n\tvar ord;\n\tvar sh;\n\tvar st;\n\tvar dt;\n\n\tdt = getDType( x );\n\tsh = getShape( x, true );\n\tord = getOrder( x );\n\n\tndims = sh.length;\n\tif ( ndims > 0 ) {\n\t\tlen = numel( sh );\n\t\tst = shape2strides( sh, ord );\n\t} else {\n\t\t// For 0-dimensional arrays, the buffer should contain a single element...\n\t\tlen = 1;\n\t\tst = [ 0 ];\n\t}\n\tif ( dt === 'binary' ) {\n\t\tbuf = allocUnsafe( len );\n\t} else {\n\t\tbuf = emptyArray( len, dt );\n\t}\n\treturn new x.constructor( dt, buf, sh, st, strides2offset( sh, st ), ord );\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 ndarray having the same shape and data type as a provided ndarray.\n*\n* @module @stdlib/ndarray/base/empty-like\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/base/zeros' );\n* var emptyLike = require( '@stdlib/ndarray/base/empty-like' );\n*\n* var x = zeros( 'float32', [ 2, 2 ], 'row-major' );\n* // returns \n*\n* var y = emptyLike( x );\n* // returns \n*\n* var sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* var dt = y.dtype;\n* // returns 'float32'\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 isReadOnly = require( './../../../base/assert/is-read-only' );\nvar getDType = require( './../../../base/dtype' );\nvar getShape = require( './../../../base/shape' );\nvar getStrides = require( './../../../base/strides' );\nvar getOffset = require( './../../../base/offset' );\nvar getOrder = require( './../../../base/order' );\nvar getData = require( './../../../base/data-buffer' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Expands the shape of an array by inserting a new dimension of size one at a specified axis.\n*\n* ## Notes\n*\n* - A provided axis must reside on the interval `[-N-1, N]`, where `N` is the rank (i.e., number of dimensions) of the provided input array. If provided a negative `axis`, the axis position at which to insert a singleton dimension is computed as `N + axis + 1`. Hence, if provided `-1`, the resolved axis position is `N` (i.e., a singleton dimension is appended to the input array).\n*\n* @param {ndarray} x - input array\n* @param {integer} axis - axis at which to insert a singleton dimension\n* @throws {RangeError} must provide a valid axis\n* @returns {ndarray} output array\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var shx = x.shape;\n* // returns [ 2, 2 ]\n*\n* var y = expandDimensions( x, 1 );\n* // returns \n*\n* var shy = y.shape;\n* // returns [ 2, 1, 2 ]\n*\n* var v = y.get( 0, 0, 0 );\n* // returns 1\n*\n* v = y.get( 0, 0, 1 );\n* // returns 2\n*\n* v = y.get( 1, 0, 0 );\n* // returns 3\n*\n* v = y.get( 1, 0, 1 );\n* // returns 4\n*/\nfunction expandDimensions( x, axis ) {\n\tvar strides;\n\tvar shape;\n\tvar ord;\n\tvar sh;\n\tvar st;\n\tvar N;\n\tvar i;\n\n\tsh = getShape( x, false );\n\tst = getStrides( x, false );\n\tord = getOrder( x );\n\tN = sh.length;\n\n\tstrides = [];\n\tshape = [];\n\n\tif ( axis < 0 ) {\n\t\tif ( axis < -N-1 ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Specified axis is out-of-bounds. Must be on the interval: [-%u-1, %u]. Value: `%d`.', N, N, axis ) );\n\t\t}\n\t\taxis += N + 1;\n\t} else if ( axis > N ) {\n\t\tthrow new RangeError( format( 'invalid argument. Specified axis is out-of-bounds. Must be on the interval: [-%u-1, %u]. Value: `%d`.', N, N, axis ) );\n\t}\n\tif ( axis === 0 ) {\n\t\t// Prepend singleton dimension...\n\t\tshape.push( 1 );\n\t\tstrides.push( st[ 0 ] );\n\n\t\t// Copy remaining dimensions...\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tshape.push( sh[ i ] );\n\t\t\tstrides.push( st[ i ] );\n\t\t}\n\t} else if ( axis === N ) {\n\t\t// Copy dimensions...\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tshape.push( sh[ i ] );\n\t\t\tstrides.push( st[ i ] );\n\t\t}\n\t\t// Append singleton dimension...\n\t\tshape.push( 1 );\n\t\tstrides.push( st[ N-1 ] );\n\t} else {\n\t\t// Insert a singleton dimension...\n\t\tfor ( i = 0; i < N+1; i++ ) {\n\t\t\tif ( i === axis ) {\n\t\t\t\tshape.push( 1 );\n\t\t\t\tif ( ord === 'row-major' ) {\n\t\t\t\t\tstrides.push( st[ i-1 ] );\n\t\t\t\t} else { // ord === 'column-major'\n\t\t\t\t\tstrides.push( st[ i ] );\n\t\t\t\t}\n\t\t\t} else if ( i < axis ) {\n\t\t\t\tshape.push( sh[ i ] );\n\t\t\t\tstrides.push( st[ i ] );\n\t\t\t} else { // i > axis\n\t\t\t\tshape.push( sh[ i-1 ] );\n\t\t\t\tstrides.push( st[ i-1 ] );\n\t\t\t}\n\t\t}\n\t}\n\tif ( isReadOnly( x ) ) {\n\t\t// If provided a read-only view, the returned array should also be read-only...\n\t\treturn new x.constructor( getDType( x ), getData( x ), shape, strides, getOffset( x ), ord, { // eslint-disable-line max-len\n\t\t\t'readonly': true\n\t\t});\n\t}\n\treturn new x.constructor( getDType( x ), getData( x ), shape, strides, getOffset( x ), ord ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nmodule.exports = expandDimensions;\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* Expand the shape of an array by inserting a new dimension of size one at a specified axis.\n*\n* @module @stdlib/ndarray/base/expand-dimensions\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n* var expandDimensions = require( '@stdlib/ndarray/base/expand-dimensions' );\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var shx = x.shape;\n* // returns [ 2, 2 ]\n*\n* var y = expandDimensions( x, 1 );\n* // returns \n*\n* var shy = y.shape;\n* // returns [ 2, 1, 2 ]\n*\n* var v = y.get( 0, 0, 0 );\n* // returns 1\n*\n* v = y.get( 0, 0, 1 );\n* // returns 2\n*\n* v = y.get( 1, 0, 0 );\n* // returns 3\n*\n* v = y.get( 1, 0, 1 );\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Resolves the index offset of the first element indexed by a normalized multi-slice.\n*\n* @private\n* @param {MultiSlice} slice - normalized multi-slice object\n* @param {IntegerArray} strides - array strides\n* @param {NonNegativeInteger} offset - array index offset\n* @returns {NonNegativeInteger} index offset of the first element indexed by a normalized multi-slice object\n*/\nfunction sliceStart( slice, strides, offset ) {\n\tvar data;\n\tvar idx;\n\tvar i;\n\n\tdata = slice.data;\n\tidx = offset;\n\tfor ( i = 0; i < data.length; i++ ) {\n\t\tidx += strides[ i ] * data[ i ].start;\n\t}\n\treturn idx;\n}\n\n\n// EXPORTS //\n\nmodule.exports = sliceStart;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Resolves slice strides for a provided normalized multi-slice object.\n*\n* @private\n* @param {MultiSlice} slice - normalized multi-slice object\n* @param {IntegerArray} strides - array strides\n* @param {NonNegativeIntegerArray} rdims - indices of non-reduced dimensions\n* @returns {IntegerArray} slice strides\n*\n* @example\n* var Slice = require( '@stdlib/slice/ctor' );\n* var MultiSlice = require( '@stdlib/slice/multi' );\n*\n* var s = new MultiSlice( new Slice( 2, 3, 1 ), new Slice( 10, null, -2 ) );\n* // returns \n*\n* var strides = slice2strides( s, [ 8, 2 ], [ 1 ] );\n* // returns [ -4 ]\n*/\nfunction slice2strides( slice, strides, rdims ) {\n\tvar data;\n\tvar out;\n\tvar i;\n\tvar j;\n\n\tdata = slice.data;\n\tout = [];\n\tfor ( i = 0; i < rdims.length; i++ ) {\n\t\tj = rdims[ i ];\n\t\tout.push( strides[j] * data[j].step );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = slice2strides;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 buffer = require( './../../../base/buffer' );\nvar zeros = require( '@stdlib/array/base/zeros' );\n\n\n// MAIN //\n\n/**\n* Returns an empty n-dimensional ndarray.\n*\n* @private\n* @param {Function} ctor - ndarray constructor\n* @param {string} dtype - array data type\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - layout order\n* @param {boolean} readonly - boolean indicating whether a returned array should be read-only\n* @returns {ndarray} empty ndarray\n*/\nfunction empty( ctor, dtype, shape, order, readonly ) {\n\tvar strides;\n\tvar ndims;\n\n\tndims = shape.length;\n\tif ( ndims === 0 ) {\n\t\tstrides = [ 0 ];\n\t} else {\n\t\tstrides = zeros( ndims );\n\t}\n\treturn new ctor( dtype, buffer( dtype, 0 ), shape, strides, 0, order, {\n\t\t'readonly': readonly\n\t});\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 normalizeMultiSlice = require( '@stdlib/slice/base/normalize-multi-slice' );\nvar nonreducedDimensions = require( '@stdlib/slice/base/nonreduced-dimensions' );\nvar sliceShape = require( '@stdlib/slice/base/shape' );\nvar take = require( '@stdlib/array/base/take-indexed' );\nvar zeros = require( '@stdlib/array/base/zeros' );\nvar numel = require( './../../../base/numel' );\nvar getDType = require( './../../../base/dtype' );\nvar getShape = require( './../../../base/shape' );\nvar getStrides = require( './../../../base/strides' );\nvar getOffset = require( './../../../base/offset' );\nvar getOrder = require( './../../../base/order' );\nvar getData = require( './../../../base/data-buffer' );\nvar format = require( '@stdlib/string/format' );\nvar sliceStart = require( './slice_start.js' );\nvar slice2strides = require( './slice_strides.js' );\nvar empty = require( './empty.js' );\n\n\n// MAIN //\n\n/**\n* Returns a view of an input ndarray.\n*\n* @param {ndarray} x - input array\n* @param {MultiSlice} s - multi-slice object\n* @param {boolean} strict - boolean indicating whether to enforce strict bounds checking\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @throws {RangeError} number of slice dimensions must match the number of array dimensions\n* @throws {RangeError} slice exceeds array bounds\n* @returns {ndarray} ndarray view\n*\n* @example\n* var Slice = require( '@stdlib/slice/ctor' );\n* var MultiSlice = require( '@stdlib/slice/multi' );\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var s = new MultiSlice( new Slice( null, null, -2 ), new Slice( null, null, -1 ) );\n* // returns \n*\n* var y = slice( x, s, false, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 6.0, 5.0 ], [ 2.0, 1.0 ] ]\n*/\nfunction slice( x, s, strict, writable ) {\n\tvar strides;\n\tvar offset;\n\tvar dtype;\n\tvar shape;\n\tvar order;\n\tvar sdims;\n\tvar ndims;\n\tvar ctor;\n\tvar sh;\n\tvar ns;\n\n\t// Retrieve array meta data:\n\tdtype = getDType( x );\n\tshape = getShape( x, true );\n\tstrides = getStrides( x, true );\n\toffset = getOffset( x );\n\torder = getOrder( x );\n\tndims = shape.length;\n\n\t// Ensure that the number of array dimensions matches the number of slices:\n\tif ( s.ndims !== ndims ) {\n\t\tthrow new RangeError( format( 'invalid argument. Number of slice dimensions does not match the number of array dimensions. Array shape: (%s). Slice dimensions: %u.', shape.join( ',' ), s.ndims ) );\n\t}\n\t// Resolve the output array constructor:\n\tctor = x.constructor;\n\n\t// If provided a zero-dimensional input array, return a zero-dimensional array view...\n\tif ( ndims === 0 ) {\n\t\treturn new ctor( dtype, getData( x ), shape, strides, offset, order, {\n\t\t\t'readonly': !writable\n\t\t});\n\t}\n\t// Resolve the indices of the non-reduced dimensions:\n\tsdims = nonreducedDimensions( s );\n\n\t// Normalize the slice object based on the array shape:\n\tns = normalizeMultiSlice( s, shape, true );\n\n\t// Check whether the slice exceeds array bounds...\n\tif ( ns.code ) {\n\t\tif ( strict ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Slice exceeds array bounds. Array shape: (%s).', shape.join( ',' ) ) );\n\t\t}\n\t\t// Normalize again, this time allowing for out-of-bounds indices:\n\t\tns = normalizeMultiSlice( s, shape, false );\n\n\t\t// Compute the slice shape:\n\t\tsh = sliceShape( ns );\n\n\t\t// If the non-reduced dimensions contain elements, this means that at least one reduced dimension exceeded array bounds; in which case, we generate a shape containing zeros:\n\t\tif ( numel( take( sh, sdims ) ) > 0 ) {\n\t\t\tsh = zeros( sh.length );\n\t\t}\n\t} else {\n\t\t// Compute the slice shape:\n\t\tsh = sliceShape( ns );\n\t}\n\t// If the slice does not contain any elements, return an empty array...\n\tif ( numel( sh ) === 0 ) {\n\t\treturn empty( ctor, dtype, take( sh, sdims ), order, !writable );\n\t}\n\t// Resolve the index offset of the first element indexed by the slice:\n\toffset = sliceStart( ns, strides, offset ); // TODO: @stdlib/ndarray/base/sind2bind\n\n\t// Remove reduced dimensions from the slice shape:\n\tsh = take( sh, sdims );\n\n\t// If all dimensions were reduced, return a zero-dimensional array...\n\tif ( sh.length === 0 ) {\n\t\treturn new ctor( dtype, getData( x ), [], [ 0 ], offset, order, {\n\t\t\t'readonly': !writable\n\t\t});\n\t}\n\t// Update strides according to slice steps:\n\tstrides = slice2strides( ns, strides, sdims ); // TODO: @stdlib/ndarray/base/slice2strides???\n\n\t// Return a slice view:\n\treturn new ctor( dtype, getData( x ), sh, strides, offset, order, {\n\t\t'readonly': !writable\n\t});\n}\n\n\n// EXPORTS //\n\nmodule.exports = slice;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 view of an input ndarray.\n*\n* @module @stdlib/ndarray/base/slice\n*\n* @example\n* var Slice = require( '@stdlib/slice/ctor' );\n* var MultiSlice = require( '@stdlib/slice/multi' );\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var slice = require( '@stdlib/ndarray/base/slice' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var s = new MultiSlice( new Slice( null, null, -2 ), new Slice( null, null, -1 ) );\n* // returns \n*\n* var y = slice( x, s, false, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 6.0, 5.0 ], [ 2.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 the number of ndarray dimensions.\n*\n* @param {ndarrayLike} x - input ndarray\n* @returns {NonNegativeInteger} number of dimensions\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n*\n* var n = ndims( zeros( [ 3, 3, 3 ] ) );\n* // returns 3\n*/\nfunction ndims( x ) {\n\tvar n = x.ndims; // Note: intentionally cache in case `ndims` is lazily resolved via accessor\n\tif ( typeof n === 'number' ) {\n\t\treturn n;\n\t}\n\treturn x.shape.length;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ndims;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 number of ndarray dimensions.\n*\n* @module @stdlib/ndarray/base/ndims\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n* var ndims = require( '@stdlib/ndarray/base/ndims' );\n*\n* var n = ndims( zeros( [ 3, 3, 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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 args2multislice = require( '@stdlib/slice/base/args2multislice' );\nvar Slice = require( '@stdlib/slice/ctor' );\nvar slice = require( './../../../base/slice' );\nvar filled = require( '@stdlib/array/base/filled' );\nvar ndims = require( './../../../base/ndims' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns a view of an input ndarray in which the order of elements along a specified dimension is reversed.\n*\n* @param {ndarray} x - input array\n* @param {integer} dim - index of dimension to reverse\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @throws {TypeError} first argument must be an ndarray having one or more dimensions\n* @throws {RangeError} dimension index exceeds the number of dimensions\n* @returns {ndarray} ndarray view\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = reverseDimension( x, 0, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 3, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 5.0, 6.0 ], [ 3.0, 4.0 ], [ 1.0, 2.0 ] ]\n*/\nfunction reverseDimension( x, dim, writable ) {\n\tvar args;\n\tvar N;\n\tvar d;\n\n\t// Retrieve the number of array dimensions:\n\tN = ndims( x );\n\n\t// Check whether we were provided a zero-dimensional array...\n\tif ( N === 0 ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray having one or more dimensions. Number of dimensions: %d.', N ) );\n\t}\n\t// Normalize the dimension index...\n\td = dim;\n\tif ( d < 0 ) {\n\t\td += N;\n\t\tif ( d < 0 ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Dimension index exceeds the number of dimensions. Number of dimensions: %d. Value: `%d`.', N, dim ) );\n\t\t}\n\t} else if ( d >= N ) {\n\t\tthrow new RangeError( format( 'invalid argument. Dimension index exceeds the number of dimensions. Number of dimensions: %d. Value: `%d`.', N, dim ) );\n\t}\n\t// Define a list of MultiSlice constructor arguments:\n\targs = filled( null, N );\n\targs[ d ] = new Slice( null, null, -1 );\n\n\t// Return a new array view:\n\treturn slice( x, args2multislice( args ), true, writable );\n}\n\n\n// EXPORTS //\n\nmodule.exports = reverseDimension;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 view of an input ndarray in which the order of elements along a specified dimension is reversed.\n*\n* @module @stdlib/ndarray/base/reverse-dimension\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var reverseDimension = require( '@stdlib/ndarray/base/reverse-dimension' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = reverseDimension( x, 0, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 3, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 5.0, 6.0 ], [ 3.0, 4.0 ], [ 1.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 MultiSlice = require( '@stdlib/slice/multi' );\nvar reverseDimension = require( './../../../base/reverse-dimension' );\nvar slice = require( './../../../base/slice' );\nvar ndims = require( './../../../base/ndims' );\n\n\n// MAIN //\n\n/**\n* Returns a view of an input ndarray in which the order of elements along the last dimension is reversed.\n*\n* @param {ndarray} x - input array\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @returns {ndarray} ndarray view\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = fliplr( x, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 3, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 2.0, 1.0 ], [ 4.0, 3.0 ], [ 6.0, 5.0 ] ]\n*/\nfunction fliplr( x, writable ) {\n\t// Check whether we were provided a zero-dimensional array...\n\tif ( ndims( x ) === 0 ) {\n\t\t// Nothing to reverse so just return a new view:\n\t\treturn slice( x, new MultiSlice(), true, writable );\n\t}\n\treturn reverseDimension( x, -1, writable );\n}\n\n\n// EXPORTS //\n\nmodule.exports = fliplr;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 view of an input ndarray in which the order of elements along the last dimension is reversed.\n*\n* @module @stdlib/ndarray/base/fliplr\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var fliplr = require( '@stdlib/ndarray/base/fliplr' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = fliplr( x, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 3, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 2.0, 1.0 ], [ 4.0, 3.0 ], [ 6.0, 5.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 MultiSlice = require( '@stdlib/slice/multi' );\nvar reverseDimension = require( './../../../base/reverse-dimension' );\nvar slice = require( './../../../base/slice' );\nvar ndims = require( './../../../base/ndims' );\n\n\n// MAIN //\n\n/**\n* Returns a view of an input ndarray in which the order of elements along the second-to-last dimension is reversed.\n*\n* @param {ndarray} x - input array\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @returns {ndarray} ndarray view\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = flipud( x, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 3, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 5.0, 6.0 ], [ 3.0, 4.0 ], [ 1.0, 2.0 ] ]\n*/\nfunction flipud( x, writable ) {\n\tvar N = ndims( x );\n\n\t// Check whether we were provided a zero-dimensional array...\n\tif ( N === 0 ) {\n\t\t// Nothing to reverse, so just return a new view:\n\t\treturn slice( x, new MultiSlice(), true, writable );\n\t}\n\t// Check whether we were provided a one-dimensional array...\n\tif ( N === 1 ) {\n\t\t// No second-to-last dimension to reverse, so just return a new view:\n\t\treturn slice( x, new MultiSlice( null ), true, writable );\n\t}\n\treturn reverseDimension( x, -2, writable );\n}\n\n\n// EXPORTS //\n\nmodule.exports = flipud;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 view of an input ndarray in which the order of elements along the second-to-last dimension is reversed.\n*\n* @module @stdlib/ndarray/base/flipud\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var flipud = require( '@stdlib/ndarray/base/flipud' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = flipud( x, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 3, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 5.0, 6.0 ], [ 3.0, 4.0 ], [ 1.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// MODULES //\n\nvar isAccessorArray = require( '@stdlib/array/base/assert/is-accessor-array' );\nvar accessorSetter = require( '@stdlib/array/base/accessor-setter' );\nvar setter = require( '@stdlib/array/base/setter' );\nvar buffer = require( './../../../base/buffer' );\nvar ndarray = require( './../../../base/ctor' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns a zero-dimensional ndarray containing a provided scalar value.\n*\n* @param {*} value - scalar value\n* @param {string} dtype - output array data type\n* @param {string} order - memory layout (either 'row-major' or 'column-major')\n* @throws {TypeError} second argument must be a recognized data type\n* @returns {ndarray} ndarray\n*\n* @example\n* var x = scalar2ndarray( 1.0, 'float64', 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns []\n*\n* var dt = x.dtype;\n* // returns 'float64'\n*\n* var v = x.get();\n* // returns 1.0\n*/\nfunction scalar2ndarray( value, dtype, order ) {\n\tvar buf;\n\tvar set;\n\n\tbuf = buffer( dtype, 1 );\n\tif ( buf === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a recognized data type. Value: `%s`.', dtype ) );\n\t}\n\tif ( /^complex/.test( dtype ) && typeof value === 'number' ) {\n\t\tvalue = [ value, 0.0 ]; // note: we're assuming that the ComplexXXArray setter accepts an array of interleaved real and imaginary components\n\t}\n\tif ( isAccessorArray( buf ) ) {\n\t\tset = accessorSetter( dtype );\n\t} else {\n\t\tset = setter( dtype );\n\t}\n\tset( buf, 0, value );\n\treturn new ndarray( dtype, buf, [], [ 0 ], 0, order );\n}\n\n\n// EXPORTS //\n\nmodule.exports = scalar2ndarray;\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 a scalar value to a zero-dimensional ndarray.\n*\n* @module @stdlib/ndarray/base/from-scalar\n*\n* @example\n* var scalar2ndarray = require( '@stdlib/ndarray/base/from-scalar' );\n*\n* var x = scalar2ndarray( 1.0, 'float64', 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns []\n*\n* var dt = x.dtype;\n* // returns 'float64'\n*\n* var v = x.get();\n* // returns 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 format = require( '@stdlib/string/format' );\nvar trunc = require( '@stdlib/math/base/special/trunc' );\n\n\n// MAIN //\n\n/**\n* Converts a linear index to an array of subscripts.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - location of the first indexed value **based** on the stride array\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @param {integer} idx - linear index\n* @param {string} mode - specifies how to handle a linear index which exceeds array dimensions\n* @param {(Array|TypedArray|Object)} out - destination object\n* @throws {RangeError} linear index must not exceed array dimensions\n* @returns {(Array|TypedArray|Object)} subscripts\n*\n* @example\n* var shape = [ 3, 3, 3 ];\n* var strides = [ 9, 6, 1 ];\n* var offset = 0;\n* var order = 'row-major';\n*\n* var s = [ 0, 0, 0 ];\n* var out = ind2sub( shape, strides, offset, order, 17, 'throw', s );\n* // returns [ 1, 2, 2 ]\n*\n* var bool = ( out === s );\n* // returns true\n*/\nfunction ind2sub( shape, strides, offset, order, idx, mode, out ) {\n\tvar ndims;\n\tvar len;\n\tvar k;\n\tvar s;\n\tvar i;\n\n\tndims = shape.length;\n\tlen = 1;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tlen *= shape[ i ];\n\t}\n\tif ( mode === 'clamp' ) {\n\t\tif ( idx < 0 ) {\n\t\t\tidx = 0;\n\t\t} else if ( idx >= len ) {\n\t\t\tidx = len - 1;\n\t\t}\n\t} else if ( mode === 'wrap' ) {\n\t\tif ( idx < 0 ) {\n\t\t\tidx += len; // slight optimization to avoid modulo arithmetic when |idx| <= len\n\t\t\tif ( idx < 0 ) {\n\t\t\t\tidx %= len;\n\t\t\t\tif ( idx !== 0 ) {\n\t\t\t\t\tidx += len;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if ( idx >= len ) {\n\t\t\tidx -= len; // slight optimization to avoid modulo arithmetic when len < idx <= 2*len\n\t\t\tif ( idx >= len ) {\n\t\t\t\tidx %= len;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif ( mode === 'normalize' && idx < 0 ) {\n\t\t\tidx += len;\n\t\t}\n\t\tif ( idx < 0 || idx >= len ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Linear index must not exceed array dimensions. Number of array elements: `%u`. Value: `%d`.', len, idx ) );\n\t\t}\n\t}\n\tif ( offset === 0 ) {\n\t\tif ( order === 'column-major' ) {\n\t\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\t\ts = idx % shape[ i ];\n\t\t\t\tidx -= s;\n\t\t\t\tidx /= shape[ i ];\n\t\t\t\tout[ i ] = s;\n\t\t\t}\n\t\t\treturn out;\n\t\t}\n\t\t// Case: row-major\n\t\tfor ( i = ndims-1; i >= 0; i-- ) {\n\t\t\ts = idx % shape[ i ];\n\t\t\tidx -= s;\n\t\t\tidx /= shape[ i ];\n\t\t\tout[ i ] = s;\n\t\t}\n\t\treturn out;\n\t}\n\tif ( order === 'column-major' ) {\n\t\tfor ( i = ndims-1; i >= 0; i-- ) {\n\t\t\ts = strides[ i ];\n\t\t\tif ( s < 0 ) {\n\t\t\t\tk = trunc( idx/s );\n\t\t\t\tidx -= k * s;\n\t\t\t\tout[ i ] = shape[ i ] - 1 + k;\n\t\t\t} else {\n\t\t\t\tk = trunc( idx/s );\n\t\t\t\tidx -= k * s;\n\t\t\t\tout[ i ] = k;\n\t\t\t}\n\t\t}\n\t\treturn out;\n\t}\n\t// Case: row-major\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\ts = strides[ i ];\n\t\tif ( s < 0 ) {\n\t\t\tk = trunc( idx/s );\n\t\t\tidx -= k * s;\n\t\t\tout[ i ] = shape[ i ] - 1 + k;\n\t\t} else {\n\t\t\tk = trunc( idx/s );\n\t\t\tidx -= k * s;\n\t\t\tout[ i ] = k;\n\t\t}\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = ind2sub;\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 zeros = require( '@stdlib/array/base/zeros' );\nvar getSubscripts = require( './assign.js' );\n\n\n// MAIN //\n\n/**\n* Converts a linear index to an array of subscripts.\n*\n* ## Notes\n*\n* - The function accepts the following \"modes\":\n*\n* - **throw**: throw an error when a linear index exceeds array dimensions.\n* - **normalize**: normalize negative indices and throw an error when a linear index exceeds array dimensions.\n* - **wrap**: wrap around a linear index exceeding array dimensions using modulo arithmetic.\n* - **clamp**: set a linear index exceeding array dimensions to either `0` (minimum linear index) or the maximum linear index.\n*\n* - When provided a stride array containing negative strides, if an `offset` is greater than `0`, the function interprets the linear index as an index into the underlying data buffer for the array, thus returning subscripts from the perspective of that buffer. If an `offset` is equal to `0`, the function treats the linear index as an index into an array view, thus returning subscripts from the perspective of that view.\n*\n* ```text\n* Dims: 2x2\n* Buffer: [ 1, 2, 3, 4 ]\n*\n* View = [ a00, a01,\n* a10, a11 ]\n*\n* Strides: 2,1\n* Offset: 0\n*\n* View = [ 1, 2,\n* 3, 4 ]\n*\n* Strides: 2,-1\n* Offset: 1\n*\n* View = [ 2, 1,\n* 4, 3 ]\n*\n* Strides: -2,1\n* Offset: 2\n*\n* View = [ 3, 4,\n* 1, 2 ]\n*\n* Strides: -2,-1\n* Offset: 3\n*\n* View = [ 4, 3,\n* 2, 1 ]\n* ```\n*\n* ```javascript\n* var shape = [ 2, 2 ];\n* var order = 'row-major';\n* var strides = [ -2, 1 ];\n* var offset = 2;\n* var mode = 'throw';\n*\n* // From the perspective of a view...\n* var s = ind2sub( shape, strides, 0, order, 0, mode );\n* // returns [ 0, 0 ]\n*\n* s = ind2sub( shape, strides, 0, order, 1, mode );\n* // returns [ 0, 1 ]\n*\n* s = ind2sub( shape, strides, 0, order, 2, mode );\n* // returns [ 1, 0 ]\n*\n* s = ind2sub( shape, strides, 0, order, 3, mode );\n* // returns [ 1, 1 ]\n*\n* // From the perspective of an underlying buffer...\n* s = ind2sub( shape, strides, offset, order, 0, mode );\n* // returns [ 1, 0 ]\n*\n* s = ind2sub( shape, strides, offset, order, 1, mode );\n* // returns [ 1, 1 ]\n*\n* s = ind2sub( shape, strides, offset, order, 2, mode );\n* // returns [ 0, 0 ]\n*\n* s = ind2sub( shape, strides, offset, order, 3, mode );\n* // returns [ 0, 1 ]\n* ```\n*\n* In short, from the perspective of a view, view data is always ordered.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - location of the first indexed value **based** on the stride array\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @param {integer} idx - linear index\n* @param {string} mode - specifies how to handle a linear index which exceeds array dimensions\n* @throws {RangeError} linear index must not exceed array dimensions\n* @returns {Array} subscripts\n*\n* @example\n* var shape = [ 3, 3, 3 ];\n* var strides = [ 9, 6, 1 ];\n* var offset = 0;\n* var order = 'row-major';\n*\n* var s = ind2sub( shape, strides, offset, order, 17, 'throw' );\n* // returns [ 1, 2, 2 ]\n*/\nfunction ind2sub( shape, strides, offset, order, idx, mode ) {\n\treturn getSubscripts( shape, strides, offset, order, idx, mode, zeros( shape.length ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nmodule.exports = ind2sub;\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 a linear index to an array of subscripts.\n*\n* @module @stdlib/ndarray/base/ind2sub\n*\n* @example\n* var ind2sub = require( '@stdlib/ndarray/base/ind2sub' );\n*\n* var shape = [ 3, 3, 3 ];\n* var strides = [ 9, 6, 1 ];\n* var offset = 0;\n*\n* var s = ind2sub( shape, strides, offset, 'row-major', 17, 'throw' );\n* // returns [ 1, 2, 2 ]\n*\n* @example\n* var ind2sub = require( '@stdlib/ndarray/base/ind2sub' );\n*\n* var shape = [ 3, 3, 3 ];\n* var strides = [ 9, 6, 1 ];\n* var offset = 0;\n*\n* var s = [ 0, 0, 0 ];\n* var out = ind2sub.assign( shape, strides, offset, 'row-major', 17, 'throw', s );\n* // returns [ 1, 2, 2 ]\n*\n* var bool = ( out === s );\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// MAIN //\n\n/**\n* Computes the maximum linear index in an underlying data buffer accessible to an array view.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @returns {NonNegativeInteger} linear index\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ 10, 1 ];\n* var offset = 0;\n*\n* var idx = maxViewBufferIndex( shape, strides, offset );\n* // returns 99\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ -10, -1 ];\n* var offset = 99;\n*\n* var idx = maxViewBufferIndex( shape, strides, offset );\n* // returns 99\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ 1, 10 ];\n* var offset = 0;\n*\n* var idx = maxViewBufferIndex( shape, strides, offset );\n* // returns 99\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ -1, -10 ];\n* var offset = 99;\n*\n* var idx = maxViewBufferIndex( shape, strides, offset );\n* // returns 99\n*/\nfunction maxViewBufferIndex( shape, strides, offset ) {\n\tvar ndims;\n\tvar idx;\n\tvar i;\n\n\tndims = shape.length;\n\tidx = offset;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tif ( shape[ i ] === 0 ) {\n\t\t\treturn offset;\n\t\t}\n\t\tif ( strides[ i ] > 0 ) {\n\t\t\tidx += strides[ i ] * ( shape[ i ] - 1 );\n\t\t}\n\t}\n\treturn idx;\n}\n\n\n// EXPORTS //\n\nmodule.exports = maxViewBufferIndex;\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* Compute the maximum linear index in an underlying data buffer accessible to an array view.\n*\n* @module @stdlib/ndarray/base/max-view-buffer-index\n*\n* @example\n* var maxViewBufferIndex = require( '@stdlib/ndarray/base/max-view-buffer-index' );\n*\n* var shape = [ 10, 10 ];\n* var strides = [ 10, 1 ];\n* var offset = 0;\n*\n* var idx = maxViewBufferIndex( shape, strides, offset );\n* // returns 99\n*\n* @example\n* var maxViewBufferIndex = require( '@stdlib/ndarray/base/max-view-buffer-index' );\n*\n* var shape = [ 10, 10 ];\n* var strides = [ -10, -1 ];\n* var offset = 99;\n*\n* var idx = maxViewBufferIndex( shape, strides, offset );\n* // returns 99\n*\n* @example\n* var maxViewBufferIndex = require( '@stdlib/ndarray/base/max-view-buffer-index' );\n*\n* var shape = [ 10, 10 ];\n* var strides = [ 1, 10 ];\n* var offset = 0;\n*\n* var idx = maxViewBufferIndex( shape, strides, offset );\n* // returns 99\n*\n* @example\n* var maxViewBufferIndex = require( '@stdlib/ndarray/base/max-view-buffer-index' );\n*\n* var shape = [ 10, 10 ];\n* var strides = [ -1, -10 ];\n* var offset = 99;\n*\n* var idx = maxViewBufferIndex( shape, strides, offset );\n* // returns 99\n*/\n\n// MODULES //\n\nvar maxViewBufferIndex = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = maxViewBufferIndex;\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 broadcast = require( './../../../base/broadcast-array' );\nvar getShape = require( './../../../base/shape' );\n\n\n// MAIN //\n\n/**\n* Broadcasts an ndarray to a specified shape if and only if the specified shape differs from the provided ndarray's shape.\n*\n* ## Notes\n*\n* - If a provided ndarray has the same shape as the specified shape, the function returns the provided ndarray.\n* - If a provided ndarray has a different (broadcast compatible) shape than the specified shape, the function returns a new (base) ndarray view of the provided ndarray's data. The view is typically **not** contiguous. As more than one element of a returned view may refer to the same memory location, writing to the view may affect multiple elements. If you need to write to the returned array, copy the array before performing operations which may mutate elements.\n*\n* @param {ndarray} arr - input array\n* @param {NonNegativeIntegerArray} shape - desired 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 shape\n* @throws {Error} input array and desired shape must be broadcast compatible\n* @returns {ndarray} broadcasted array\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var shx = x.shape;\n* // returns [ 2, 2 ]\n*\n* var y = maybeBroadcastArray( x, [ 3, 2, 2 ] );\n* // returns \n*\n* var shy = y.shape;\n* // returns [ 3, 2, 2 ]\n*\n* var v = y.get( 0, 0, 0 );\n* // returns 1\n*\n* v = y.get( 0, 0, 1 );\n* // returns 2\n*\n* v = y.get( 1, 0, 0 );\n* // returns 1\n*\n* v = y.get( 1, 1, 0 );\n* // returns 3\n*\n* v = y.get( 2, 0, 0 );\n* // returns 1\n*\n* v = y.get( 2, 1, 1 );\n* // returns 4\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var y = maybeBroadcastArray( x, [ 3, 2 ] );\n* // throws \n*/\nfunction maybeBroadcastArray( arr, shape ) {\n\tvar sh;\n\tvar N;\n\tvar i;\n\n\tN = shape.length;\n\tsh = getShape( arr, false );\n\n\t// Check whether we need to broadcast the input array...\n\tif ( sh.length === N ) {\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\t// Check whether dimensions match...\n\t\t\tif ( sh[ i ] !== shape[ i ] ) {\n\t\t\t\t// We found a mismatched dimension; delegate to `broadcast` to ensure that the input array is broadcast compatible with the desired array shape...\n\t\t\t\treturn broadcast( arr, shape );\n\t\t\t}\n\t\t}\n\t\treturn arr;\n\t}\n\t// If we are provided an array having a different rank (i.e., number of dimensions) than the desired shape, assume we need to broadcast, delegating to `broadcast` to ensure that the input array is broadcast compatible with the desired array shape...\n\treturn broadcast( arr, shape );\n}\n\n\n// EXPORTS //\n\nmodule.exports = maybeBroadcastArray;\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* Broadcast an ndarray to a specified shape if and only if the specified shape differs from the provided ndarray's shape.\n*\n* @module @stdlib/ndarray/base/maybe-broadcast-array\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n* var maybeBroadcastArray = require( '@stdlib/ndarray/base/maybe-broadcast-array' );\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var shx = x.shape;\n* // returns [ 2, 2 ]\n*\n* var y = maybeBroadcastArray( x, [ 3, 2, 2 ] );\n* // returns \n*\n* var shy = y.shape;\n* // returns [ 3, 2, 2 ]\n*\n* var v = y.get( 0, 0, 0 );\n* // returns 1\n*\n* v = y.get( 0, 0, 1 );\n* // returns 2\n*\n* v = y.get( 1, 0, 0 );\n* // returns 1\n*\n* v = y.get( 1, 1, 0 );\n* // returns 3\n*\n* v = y.get( 2, 0, 0 );\n* // returns 1\n*\n* v = y.get( 2, 1, 1 );\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) 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 setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar setReadOnlyAccessor = require( '@stdlib/utils/define-nonenumerable-read-only-accessor' );\nvar dtypes2signatures = require( './../../../base/dtypes2signatures' );\n\n\n// MAIN //\n\n/**\n* Defines non-enumerable read-only properties which expose ndarray function meta data.\n*\n* @param {Object} meta - function meta data\n* @param {NonNegativeInteger} meta.nargs - total number of arguments\n* @param {NonNegativeInteger} meta.nin - total number of input arrays\n* @param {NonNegativeInteger} meta.nout - total number of output arrays\n* @param {ArrayLikeObject} dtypes - list of ndarray data types\n* @param {(Function|Object)} obj - object on which to define properties\n* @returns {(Function|Object)} object on which properties were defined\n*\n* @example\n* // Define ndarray function meta data:\n* var meta = {\n* 'nargs': 2,\n* 'nin': 1,\n* 'nout': 1\n* };\n*\n* // Define the list of ndarray data types:\n* var dtypes = [\n* 'float64', 'float64',\n* 'float32', 'float32',\n* 'generic', 'generic'\n* ];\n*\n* // Define an object on which to set the properties:\n* var obj = {};\n*\n* // Set the properties:\n* setProps( meta, dtypes, obj );\n*\n* @example\n* // Define ndarray function meta data:\n* var meta = {\n* 'nargs': 2,\n* 'nin': 1,\n* 'nout': 1\n* };\n*\n* // Define the list of ndarray data types:\n* var dtypes = [\n* 'float64', 'float64',\n* 'float32', 'float32',\n* 'generic', 'generic'\n* ];\n*\n* // Define a function on which to set the properties:\n* function abs( x, y ) {\n* // Implementation...\n* }\n*\n* // Set the properties:\n* setProps( meta, dtypes, abs );\n*/\nfunction setProps( meta, dtypes, obj ) {\n\t// Define the number of arguments:\n\tsetReadOnly( obj, 'nargs', meta.nargs );\n\n\t// Define the number of input arrays:\n\tsetReadOnly( obj, 'nin', meta.nin );\n\n\t// Define the number of output arrays:\n\tsetReadOnly( obj, 'nout', meta.nout );\n\n\t// Define a read-only accessor for listing a function's supported array data types:\n\tsetReadOnlyAccessor( obj, 'types', types );\n\n\treturn obj;\n\n\t/**\n\t* Returns a list of array type signatures.\n\t*\n\t* @private\n\t* @returns {StringArray} list of signatures\n\t*/\n\tfunction types() {\n\t\treturn dtypes2signatures( dtypes, meta.nin, meta.nout );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = setProps;\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* Define non-enumerable read-only properties which expose ndarray function meta data.\n*\n* @module @stdlib/ndarray/base/meta-data-props\n*\n* @example\n* var setProps = require( '@stdlib/ndarray/base/meta-data-props' );\n*\n* // Define ndarray function meta data:\n* var meta = {\n* 'nargs': 2,\n* 'nin': 1,\n* 'nout': 1\n* };\n*\n* // Define the list of ndarray data types:\n* var dtypes = [\n* 'float64', 'float64',\n* 'float32', 'float32',\n* 'generic', 'generic'\n* ];\n*\n* // Define an object/function on which to set the properties:\n* var obj = {};\n*\n* // Set the properties:\n* setProps( meta, dtypes, obj );\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/**\n* Computes the minimum linear index in an underlying data buffer accessible to an array view.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - index offset\n* @returns {NonNegativeInteger} linear index\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ 10, 1 ];\n* var offset = 10;\n*\n* var idx = minViewBufferIndex( shape, strides, offset );\n* // returns 10\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ -10, -1 ];\n* var offset = 109;\n*\n* var idx = minViewBufferIndex( shape, strides, offset );\n* // returns 10\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ 1, 10 ];\n* var offset = 10;\n*\n* var idx = minViewBufferIndex( shape, strides, offset );\n* // returns 10\n*\n* @example\n* var shape = [ 10, 10 ];\n* var strides = [ -1, -10 ];\n* var offset = 109;\n*\n* var idx = minViewBufferIndex( shape, strides, offset );\n* // returns 10\n*/\nfunction minViewBufferIndex( shape, strides, offset ) {\n\tvar ndims;\n\tvar idx;\n\tvar i;\n\n\tndims = shape.length;\n\tidx = offset;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tif ( shape[ i ] === 0 ) {\n\t\t\treturn offset;\n\t\t}\n\t\tif ( strides[ i ] < 0 ) {\n\t\t\tidx += strides[ i ] * ( shape[ i ] - 1 ); // decrements the index\n\t\t}\n\t}\n\treturn idx;\n}\n\n\n// EXPORTS //\n\nmodule.exports = minViewBufferIndex;\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* Compute the minimum linear index in an underlying data buffer accessible to an array view.\n*\n* @module @stdlib/ndarray/base/min-view-buffer-index\n*\n* @example\n* var minViewBufferIndex = require( '@stdlib/ndarray/base/min-view-buffer-index' );\n*\n* var shape = [ 10, 10 ];\n* var strides = [ 10, 1 ];\n* var offset = 10;\n*\n* var idx = minViewBufferIndex( shape, strides, offset );\n* // returns 10\n*\n* @example\n* var minViewBufferIndex = require( '@stdlib/ndarray/base/min-view-buffer-index' );\n*\n* var shape = [ 10, 10 ];\n* var strides = [ -10, -1 ];\n* var offset = 109;\n*\n* var idx = minViewBufferIndex( shape, strides, offset );\n* // returns 10\n*\n* @example\n* var minViewBufferIndex = require( '@stdlib/ndarray/base/min-view-buffer-index' );\n*\n* var shape = [ 10, 10 ];\n* var strides = [ 1, 10 ];\n* var offset = 10;\n*\n* var idx = minViewBufferIndex( shape, strides, offset );\n* // returns 10\n*\n* @example\n* var minViewBufferIndex = require( '@stdlib/ndarray/base/min-view-buffer-index' );\n*\n* var shape = [ 10, 10 ];\n* var strides = [ -1, -10 ];\n* var offset = 109;\n*\n* var idx = minViewBufferIndex( shape, strides, offset );\n* // returns 10\n*/\n\n// MODULES //\n\nvar minViewBufferIndex = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = minViewBufferIndex;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 ROW_MAJOR = 'row-major';\n\n\n// FUNCTIONS //\n\n/**\n* Returns the next Cartesian index (row-major).\n*\n* @private\n* @param {NonNegativeInteger} ndims - number of dimensions\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {NonNegativeIntegerArray} idx - current dimension indices\n* @param {NonNegativeInteger} dim - index of the dimension from which to start incrementing (inclusive)\n* @param {(Array|TypedArray|Object)} out - output array\n* @returns {(Array|TypedArray|Object)} output array\n*/\nfunction rowmajor( ndims, shape, idx, dim, out ) {\n\tvar i;\n\tvar j;\n\n\t// Set dimension indices which are skipped...\n\tfor ( i = ndims-1; i > dim; i-- ) {\n\t\tout[ i ] = idx[ i ];\n\t}\n\t// Search for the first dimension in which we don't have to \"carry the one\"...\n\tfor ( i = dim; i >= 0; i-- ) {\n\t\tj = ( idx[ i ] + 1 ) % shape[ i ];\n\t\tout[ i ] = j;\n\n\t\t// If the current index value is greater than zero, we can continue iterating within the current sub-array...\n\t\tif ( j > 0 ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\t// Set dimension indices which did not get updated...\n\tfor ( i -= 1; i >= 0; i-- ) {\n\t\tout[ i ] = idx[ i ];\n\t}\n\treturn out;\n}\n\n/**\n* Returns the next Cartesian index (column-major).\n*\n* @private\n* @param {NonNegativeInteger} ndims - number of dimensions\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {NonNegativeIntegerArray} idx - current dimension indices\n* @param {NonNegativeInteger} dim - index of the dimension from which to start incrementing (inclusive)\n* @param {(Array|TypedArray|Object)} out - output array\n* @returns {(Array|TypedArray|Object)} output array\n*/\nfunction columnmajor( ndims, shape, idx, dim, out ) {\n\tvar i;\n\tvar j;\n\n\t// Set dimension indices which are skipped...\n\tfor ( i = 0; i < dim; i++ ) {\n\t\tout[ i ] = idx[ i ];\n\t}\n\t// Search for the first dimension in which we don't have to \"carry the one\"...\n\tfor ( i = dim; i < ndims; i++ ) {\n\t\tj = ( idx[ i ] + 1 ) % shape[ i ];\n\t\tout[ i ] = j;\n\n\t\t// If the current index value is greater than zero, we can continue iterating within the current sub-array...\n\t\tif ( j > 0 ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\t// Set dimension indices which did not get updated...\n\tfor ( i += 1; i < ndims; i++ ) {\n\t\tout[ i ] = idx[ i ];\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Returns the next Cartesian index (i.e., set of subscripts/dimension indices) and assigns results to a provided output array.\n*\n* ## Notes\n*\n* - The function does not check whether the current index is the \"last\" index. Instead, if the function is provided dimension indices corresponding to the last element, the function will cycle back to the \"first\" index.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - index iteration order\n* @param {NonNegativeIntegerArray} idx - current dimension indices\n* @param {integer} dim - index of the dimension from which to start incrementing (inclusive)\n* @param {(Array|TypedArray|Object)} out - output array\n* @returns {(Array|TypedArray|Object|null)} output array (or null)\n*\n* @example\n* var shape = [ 12 ];\n* var idx = nextCartesianIndex( shape, 'row-major', [ 2 ], 0, [ 0 ] );\n* // returns [ 3 ]\n*\n* @example\n* var shape = [ 2, 2, 2 ];\n*\n* var out = [ 0, 0, 0 ];\n* var idx = nextCartesianIndex( shape, 'row-major', [ 0, 0, 1 ], -1, out );\n* // returns [ 0, 1, 0 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1, out );\n* // returns [ 0, 1, 1 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1, out );\n* // returns [ 1, 0, 0 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1, out );\n* // returns [ 1, 0, 1 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1, out );\n* // returns [ 1, 1, 0 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1, out );\n* // returns [ 1, 1, 1 ]\n*\n* @example\n* var shape = [];\n* var idx = nextCartesianIndex( shape, 'row-major', [], 0, [] );\n* // returns null\n*\n* @example\n* var shape = [ 12 ];\n* var idx = nextCartesianIndex( shape, 'row-major', [ 2 ], -10, [ 0 ] );\n* // returns null\n*\n* @example\n* var shape = [ 12 ];\n* var idx = nextCartesianIndex( shape, 'column-major', [ 2 ], 10, [ 0 ] );\n* // returns null\n*/\nfunction nextCartesianIndex( shape, order, idx, dim, out ) {\n\tvar ndims = shape.length;\n\tif ( ndims === 0 ) {\n\t\treturn null;\n\t}\n\tif ( dim < 0 ) {\n\t\tdim += ndims;\n\t\tif ( dim < 0 ) {\n\t\t\t// Out-of-bounds:\n\t\t\treturn null;\n\t\t}\n\t} else if ( dim >= ndims ) {\n\t\t// Out-of-bounds:\n\t\treturn null;\n\t}\n\tif ( order === ROW_MAJOR ) {\n\t\treturn rowmajor( ndims, shape, idx, dim, out );\n\t}\n\t// order === 'column-major'\n\treturn columnmajor( ndims, shape, idx, dim, out );\n}\n\n\n// EXPORTS //\n\nmodule.exports = nextCartesianIndex;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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( '@stdlib/array/base/zeros' );\nvar assign = require( './assign.js' );\n\n\n// MAIN //\n\n/**\n* Returns the next Cartesian index (i.e., set of subscripts/dimension indices).\n*\n* ## Notes\n*\n* - The function does not check whether the current index is the \"last\" index. Instead, if the function is provided dimension indices corresponding to the last element, the function will cycle back to the \"first\" index.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - index iteration order\n* @param {NonNegativeIntegerArray} idx - current dimension indices\n* @param {integer} dim - index of the dimension from which to start incrementing (inclusive)\n* @returns {(NonNegativeIntegerArray|null)} updated dimension indices\n*\n* @example\n* var shape = [ 12 ];\n* var idx = nextCartesianIndex( shape, 'row-major', [ 2 ], 0 );\n* // returns [ 3 ]\n*\n* @example\n* var shape = [ 2, 2, 2 ];\n*\n* var idx = nextCartesianIndex( shape, 'row-major', [ 0, 0, 1 ], -1 );\n* // returns [ 0, 1, 0 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1 );\n* // returns [ 0, 1, 1 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1 );\n* // returns [ 1, 0, 0 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1 );\n* // returns [ 1, 0, 1 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1 );\n* // returns [ 1, 1, 0 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1 );\n* // returns [ 1, 1, 1 ]\n*\n* @example\n* var shape = [];\n* var idx = nextCartesianIndex( shape, 'row-major', [], 0 );\n* // returns null\n*\n* @example\n* var shape = [ 12 ];\n* var idx = nextCartesianIndex( shape, 'row-major', [ 2 ], -10 );\n* // returns null\n*\n* @example\n* var shape = [ 12 ];\n* var idx = nextCartesianIndex( shape, 'column-major', [ 2 ], 10 );\n* // returns null\n*/\nfunction nextCartesianIndex( shape, order, idx, dim ) {\n\treturn assign( shape, order, idx, dim, zeros( shape.length ) );\n}\n\n\n// EXPORTS //\n\nmodule.exports = nextCartesianIndex;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 Cartesian index (i.e., set of subscripts/dimension indices).\n*\n* @module @stdlib/ndarray/base/next-cartesian-index\n*\n* @example\n* var nextCartesianIndex = require( '@stdlib/ndarray/base/next-cartesian-index' );\n*\n* var shape = [ 2, 2, 2 ];\n*\n* var idx = nextCartesianIndex( shape, 'row-major', [ 0, 0, 1 ], -1 );\n* // returns [ 0, 1, 0 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1 );\n* // returns [ 0, 1, 1 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1 );\n* // returns [ 1, 0, 0 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1 );\n* // returns [ 1, 0, 1 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1 );\n* // returns [ 1, 1, 0 ]\n*\n* idx = nextCartesianIndex( shape, 'row-major', idx, -1 );\n* // returns [ 1, 1, 1 ]\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) 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// MAIN //\n\n/**\n* Returns the number of non-singleton dimensions.\n*\n* ## Notes\n*\n* - A singleton dimension is a dimension whose size is equal to `1`.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {NonNegativeInteger} number of non-singleton dimensions\n*\n* @example\n* var shape = [ 2, 2, 1 ];\n*\n* var n = nonsingletonDimensions( shape );\n* // returns 2\n*\n* @example\n* var shape = [ 1, 1, 1 ];\n*\n* var n = nonsingletonDimensions( shape );\n* // returns 0\n*/\nfunction nonsingletonDimensions( shape ) {\n\tvar cnt;\n\tvar i;\n\n\tcnt = 0;\n\tfor ( i = 0; i < shape.length; i++ ) {\n\t\tif ( shape[ i ] !== 1 ) {\n\t\t\tcnt += 1;\n\t\t}\n\t}\n\treturn cnt;\n}\n\n\n// EXPORTS //\n\nmodule.exports = nonsingletonDimensions;\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* Return the number of non-nonsingleton dimensions.\n*\n* @module @stdlib/ndarray/base/nonsingleton-dimensions\n*\n* @example\n* var nonsingletonDimensions = require( '@stdlib/ndarray/base/nonsingleton-dimensions' );\n*\n* var shape = [ 2, 2, 1 ];\n*\n* var n = nonsingletonDimensions( shape );\n* // returns 2\n*\n* @example\n* var nonsingletonDimensions = require( '@stdlib/ndarray/base/nonsingleton-dimensions' );\n*\n* var shape = [ 1, 1, 1 ];\n*\n* var n = nonsingletonDimensions( shape );\n* // returns 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* Simultaneously sorts two arrays based on the sort order of the first array using insertion sort.\n*\n* ## Notes\n*\n* - The first array is sorted in increasing order according to absolute value.\n* - The algorithm has space complexity `O(1)` and worst case time complexity `O(N^2)`.\n* - The algorithm is efficient for small arrays (typically `N <= 20``) and is particularly efficient for sorting arrays which are already substantially sorted.\n* - The algorithm is **stable**, meaning that the algorithm does **not** change the order of array elements which are equal or equivalent.\n* - The input arrays are sorted in-place (i.e., the input arrays are mutated).\n*\n* @private\n* @param {Array} x - first array\n* @param {Array} y - second array\n* @returns {void}\n*\n* @example\n* var x = [ -4, -2, 3, 1 ];\n* var y = [ 0, 1, 2, 3 ];\n*\n* sort2ins( x, y );\n*\n* console.log( x );\n* // => [ 1, -2, 3, -4 ]\n*\n* console.log( y );\n* // => [ 3, 1, 2, 0 ]\n*/\nfunction sort2ins( x, y ) {\n\tvar avx;\n\tvar aux;\n\tvar ix;\n\tvar iy;\n\tvar jx;\n\tvar jy;\n\tvar vx;\n\tvar vy;\n\tvar ux;\n\tvar i;\n\n\tix = 1;\n\tiy = 1;\n\n\t// Sort in increasing order...\n\tfor ( i = 1; i < x.length; i++ ) {\n\t\tvx = x[ ix ];\n\t\tavx = ( vx < 0 ) ? -vx : vx;\n\n\t\tvy = y[ iy ];\n\n\t\tjx = ix - 1;\n\t\tjy = iy - 1;\n\n\t\t// Shift all larger values to the left of the current element to the right...\n\t\twhile ( jx >= 0 ) {\n\t\t\tux = x[ jx ];\n\t\t\taux = ( ux < 0 ) ? -ux : ux;\n\t\t\tif ( aux <= avx ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tx[ jx+1 ] = ux;\n\t\t\ty[ jy+1 ] = y[ jy ];\n\t\t\tjx -= 1;\n\t\t\tjy -= 1;\n\t\t}\n\t\tx[ jx+1 ] = vx;\n\t\ty[ jy+1 ] = vy;\n\t\tix += 1;\n\t\tiy += 1;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = sort2ins;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 zeroTo = require( '@stdlib/array/base/zero-to' );\nvar copy = require( '@stdlib/array/base/copy-indexed' );\nvar take = require( '@stdlib/array/base/take-indexed' );\nvar sort2ins = require( './sort2ins.js' );\n\n\n// MAIN //\n\n/**\n* Reorders ndarray dimensions and associated strides for loop interchange.\n*\n* ## Notes\n*\n* - The returned object has the following properties:\n*\n* - **sh**: dimensions sorted in loop order.\n* - **sx**: ndarray strides sorted in loop order.\n*\n* @param {NonNegativeIntegerArray} sh - array dimensions\n* @param {IntegerArray} sx - array stride lengths\n* @returns {Object} loop interchange data\n*\n* @example\n* var sh = [ 2, 3, 4 ];\n*\n* var sx = [ 12, 4, 1 ]; // row-major\n*\n* var o = loopOrder( sh, sx );\n* // returns {...}\n*\n* var ssh = o.sh;\n* // returns [ 4, 3, 2 ]\n*\n* var ssx = o.sx;\n* // returns [ 1, 4, 12 ]\n*/\nfunction loopOrder( sh, sx ) {\n\tvar idx;\n\n\t// Initialize a loop interchange index array for generating a loop order permutation:\n\tidx = zeroTo( sh.length );\n\n\t// Sort the array strides in increasing order (of magnitude):\n\tsx = copy( sx );\n\tsort2ins( sx, idx );\n\n\t// Permute the shape based on the sorted array strides:\n\tsh = take( sh, idx );\n\n\treturn {\n\t\t'sh': sh,\n\t\t'sx': sx\n\t};\n}\n\n\n// EXPORTS //\n\nmodule.exports = loopOrder;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Reorder ndarray dimensions and associated strides for loop interchange.\n*\n* @module @stdlib/ndarray/base/nullary-loop-interchange-order\n*\n* @example\n* var nullaryLoopOrder = require( '@stdlib/ndarray/base/nullary-loop-interchange-order' );\n*\n* var sh = [ 2, 3, 4 ];\n*\n* var sx = [ 12, 4, 1 ]; // row-major\n*\n* var o = nullaryLoopOrder( sh, sx );\n* // returns {...}\n*\n* var ssh = o.sh;\n* // returns [ 4, 3, 2 ]\n*\n* var ssx = o.sx;\n* // returns [ 1, 4, 12 ]\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\nvar defaults = {\n\t// Define a default block size (in bytes):\n\t'BLOCK_SIZE_IN_BYTES': 64|0, // 64b is a common cache line size. How applicable the common cache line size is here is debatable, given that, depending on the associated stride(s), the innermost loop may not iterate over adjacent elements. The primary goal is to have a block size in which all data within a block can always fit in (L1) cache, regardless of cache size (i.e., cache-oblivious). For reference, a common L1 cache size is 32kB per core. For best performance, block sizes should be tuned based on system hardware; however, such tuning is not readily available to us here. Without obvious better alternatives, 64b has some theoretical (and practical) underpinning, and it should be good enough for most inputs, especially for ndarrays with near contiguity.\n\n\t// Define a default block size (in elements):\n\t'BLOCK_SIZE_IN_ELEMENTS': 8|0 // 64 bytes / 8 bytes per element (i.e., default element size is same as a double)\n};\n\n\n// EXPORTS //\n\nmodule.exports = defaults;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 bytesPerElement = require( './../../../base/bytes-per-element' );\nvar defaults = require( './defaults.js' );\n\n\n// MAIN //\n\n/**\n* Returns a loop block size for multi-dimensional array tiled loops.\n*\n* @param {string} dtypeX - array data type\n* @returns {integer} block size (in units of elements)\n*\n* @example\n* var bsize = nullaryBlockSize( 'float64' );\n* // returns \n*/\nfunction nullaryBlockSize( dtypeX ) {\n\tvar nbx = bytesPerElement( dtypeX );\n\tif ( nbx === null ) { // e.g., \"generic\" arrays\n\t\treturn defaults.BLOCK_SIZE_IN_ELEMENTS;\n\t}\n\treturn ( defaults.BLOCK_SIZE_IN_BYTES/nbx )|0; // asm type annotation\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullaryBlockSize;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Resolve a loop block size for multi-dimensional array tiled loops.\n*\n* @module @stdlib/ndarray/base/nullary-tiling-block-size\n*\n* @example\n* var nullaryBlockSize = require( '@stdlib/ndarray/base/nullary-tiling-block-size' );\n*\n* var bsize = nullaryBlockSize( 'float64' );\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 loopOrder = require( './../../../base/nullary-loop-interchange-order' );\nvar blockSize = require( './../../../base/nullary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\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* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* blockednullary2d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction blockednullary2d( x, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tset = x.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockednullary2d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/nullary-loop-interchange-order' );\nvar blockSize = require( './../../../base/nullary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\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* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* blockednullary3d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction blockednullary3d( x, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tset = x.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockednullary3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/nullary-loop-interchange-order' );\nvar blockSize = require( './../../../base/nullary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\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* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* blockednullary4d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction blockednullary4d( x, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\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 o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tset = x.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\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 = blockednullary4d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/nullary-loop-interchange-order' );\nvar blockSize = require( './../../../base/nullary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\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* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* blockednullary5d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction blockednullary5d( x, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\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 o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tset = x.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockednullary5d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/nullary-loop-interchange-order' );\nvar blockSize = require( './../../../base/nullary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\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* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* blockednullary6d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction blockednullary6d( x, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tset = x.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockednullary6d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/nullary-loop-interchange-order' );\nvar blockSize = require( './../../../base/nullary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* var Complex64Array = require( '@stdlib/array/complex64' );\n* var Complex64 = require( '@stdlib/complex/float32' );\n* var real = require( '@stdlib/complex/real' );\n* var imag = require( '@stdlib/complex/imag' );\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* blockednullary7d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = real( v );\n* // returns 10.0\n*\n* var im = imag( v );\n* // returns -10.0\n*/\nfunction blockednullary7d( x, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tset = x.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockednullary7d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/nullary-loop-interchange-order' );\nvar blockSize = require( './../../../base/nullary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\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* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* blockednullary8d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction blockednullary8d( x, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tset = x.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockednullary8d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/nullary-loop-interchange-order' );\nvar blockSize = require( './../../../base/nullary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\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* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* blockednullary9d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction blockednullary9d( x, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tset = x.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockednullary9d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/nullary-loop-interchange-order' );\nvar blockSize = require( './../../../base/nullary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\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* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* blockednullary10d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction blockednullary10d( x, fcn ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Cache accessor:\n\tset = x.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockednullary10d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 loopOrder = require( './../../../base/nullary-loop-interchange-order' );\nvar blockSize = require( './../../../base/nullary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* blockednullary2d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction blockednullary2d( x, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar ox1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t// Compute the loop offset increment:\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockednullary2d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/nullary-loop-interchange-order' );\nvar blockSize = require( './../../../base/nullary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* blockednullary3d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction blockednullary3d( x, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ox1;\n\tvar ox2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t// Compute the loop offset increment:\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockednullary3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/nullary-loop-interchange-order' );\nvar blockSize = require( './../../../base/nullary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* blockednullary4d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction blockednullary4d( x, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar ox;\n\tvar ix;\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 o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\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 = blockednullary4d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/nullary-loop-interchange-order' );\nvar blockSize = require( './../../../base/nullary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* blockednullary5d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction blockednullary5d( x, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar ox;\n\tvar ix;\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 o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockednullary5d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/nullary-loop-interchange-order' );\nvar blockSize = require( './../../../base/nullary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* blockednullary6d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction blockednullary6d( x, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockednullary6d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/nullary-loop-interchange-order' );\nvar blockSize = require( './../../../base/nullary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* blockednullary7d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction blockednullary7d( x, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockednullary7d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/nullary-loop-interchange-order' );\nvar blockSize = require( './../../../base/nullary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* blockednullary8d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction blockednullary8d( x, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockednullary8d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/nullary-loop-interchange-order' );\nvar blockSize = require( './../../../base/nullary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* blockednullary9d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction blockednullary9d( x, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockednullary9d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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// MODULES //\n\nvar loopOrder = require( './../../../base/nullary-loop-interchange-order' );\nvar blockSize = require( './../../../base/nullary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* blockednullary10d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction blockednullary10d( x, fcn ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Set a pointer to the first indexed element:\n\tox = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache the offset increment for the innermost loop:\n\tdx0 = sx[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute the index offset for the first output ndarray element in the current block:\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute the loop offset increment:\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockednullary10d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 nullary function and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n* @returns {void}\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* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 4 );\n*\n* // Define the shape of the output array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullary0d( x, fcn );\n*\n* var v = x.data.get( 1 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullary0d( x, fcn ) {\n\tx.accessors[ 1 ]( x.data, x.offset, fcn() );\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary0d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n* @returns {void}\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* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullary1d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullary1d( x, fcn ) {\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tset = x.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tset( xbuf, ix, fcn() );\n\t\tix += dx0;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary1d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n* @returns {void}\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* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullary2d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullary2d( x, fcn ) {\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tset = x.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tset( xbuf, ix, fcn() );\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary2d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n* @returns {void}\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* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullary3d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullary3d( x, fcn ) {\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tset = x.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n* @returns {void}\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* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullary4d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullary4d( x, fcn ) {\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tset = x.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary4d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n* @returns {void}\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* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullary5d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullary5d( x, fcn ) {\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tset = x.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary5d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n* @returns {void}\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* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullary6d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullary6d( x, fcn ) {\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tset = x.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary6d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* var Complex64Array = require( '@stdlib/array/complex64' );\n* var Complex64 = require( '@stdlib/complex/float32' );\n* var real = require( '@stdlib/complex/real' );\n* var imag = require( '@stdlib/complex/imag' );\n*\n* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullary7d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = real( v );\n* // returns 10.0\n*\n* var im = imag( v );\n* // returns -10.0\n*/\nfunction nullary7d( x, fcn ) {\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tset = x.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary7d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n* @returns {void}\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* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullary8d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullary8d( x, fcn ) {\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tset = x.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary8d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n* @returns {void}\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* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullary9d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullary9d( x, fcn ) {\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tset = x.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary9d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - nullary callback\n* @returns {void}\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* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullary10d( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullary10d( x, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Cache accessor:\n\tset = x.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tset( xbuf, ix, fcn() );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary10d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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( './../../../base/numel' );\nvar vind2bind = require( './../../../base/vind2bind' );\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer\n* @param {Callback} fcn - nullary callback\n* @returns {void}\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* function fcn() {\n* return new Complex64( 10.0, -10.0 );\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Complex64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the nullary function:\n* nullarynd( x, fcn );\n*\n* var v = x.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns -10.0\n*/\nfunction nullarynd( x, fcn ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar set;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the output ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Cache accessor:\n\tset = x.accessors[ 1 ];\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tset( xbuf, ix, fcn() );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullarynd;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 nullary function and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 2 );\n*\n* // Define the shape of the output array:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary0d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0 ]\n*/\nfunction nullary0d( x, fcn ) {\n\tx.data[ x.offset ] = fcn();\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary0d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 nullary function and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary1d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 0.0, 10.0, 0.0, 10.0, 0.0, 10.0 ]\n*/\nfunction nullary1d( x, fcn ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar S0;\n\tvar ix;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments:\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\txbuf[ ix ] = fcn();\n\t\tix += dx0;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary1d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary2d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction nullary2d( x, fcn ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\txbuf[ ix ] = fcn();\n\t\t\tix += dx0;\n\t\t}\n\t\tix += dx1;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary2d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary3d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction nullary3d( x, fcn ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\tix += dx0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t}\n\t\tix += dx2;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary4d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction nullary4d( x, fcn ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\tix += dx0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t}\n\t\tix += dx3;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary4d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary5d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction nullary5d( x, fcn ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t}\n\t\tix += dx4;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary5d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary6d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction nullary6d( x, fcn ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t}\n\t\tix += dx5;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary6d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary7d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction nullary7d( x, fcn ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary7d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary8d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction nullary8d( x, fcn ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t}\n\t\tix += dx7;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary8d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary9d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction nullary9d( x, fcn ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t}\n\t\tix += dx8;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary9d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary10d( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction nullary10d( x, fcn ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the output ndarray buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\txbuf[ ix ] = fcn();\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t}\n\t\tix += dx9;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary10d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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( './../../../base/numel' );\nvar vind2bind = require( './../../../base/vind2bind' );\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Applies a nullary callback and assigns results to elements in an output ndarray.\n*\n* @private\n* @param {Object} x - object containing ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 8 );\n*\n* // Define the shape of the output array:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the output ndarray-like object:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullarynd( x, fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction nullarynd( x, fcn ) {\n\tvar xbuf;\n\tvar ordx;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar ox;\n\tvar ix;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache a reference to the output ndarray data buffer:\n\txbuf = x.data;\n\n\t// Cache a reference to the stride array:\n\tsx = x.strides;\n\n\t// Cache the index of the first indexed element:\n\tox = x.offset;\n\n\t// Cache the array order:\n\tordx = x.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\txbuf[ ix ] = fcn();\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullarynd;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 iterationOrder = require( './../../../base/iteration-order' );\nvar minmaxViewBufferIndex = require( './../../../base/minmax-view-buffer-index' );\nvar ndarray2object = require( './../../../base/ndarraylike2object' );\nvar blockedaccessornullary2d = require( './2d_blocked_accessors.js' );\nvar blockedaccessornullary3d = require( './3d_blocked_accessors.js' );\nvar blockedaccessornullary4d = require( './4d_blocked_accessors.js' );\nvar blockedaccessornullary5d = require( './5d_blocked_accessors.js' );\nvar blockedaccessornullary6d = require( './6d_blocked_accessors.js' );\nvar blockedaccessornullary7d = require( './7d_blocked_accessors.js' );\nvar blockedaccessornullary8d = require( './8d_blocked_accessors.js' );\nvar blockedaccessornullary9d = require( './9d_blocked_accessors.js' );\nvar blockedaccessornullary10d = require( './10d_blocked_accessors.js' );\nvar blockednullary2d = require( './2d_blocked.js' );\nvar blockednullary3d = require( './3d_blocked.js' );\nvar blockednullary4d = require( './4d_blocked.js' );\nvar blockednullary5d = require( './5d_blocked.js' );\nvar blockednullary6d = require( './6d_blocked.js' );\nvar blockednullary7d = require( './7d_blocked.js' );\nvar blockednullary8d = require( './8d_blocked.js' );\nvar blockednullary9d = require( './9d_blocked.js' );\nvar blockednullary10d = require( './10d_blocked.js' );\nvar accessornullary0d = require( './0d_accessors.js' );\nvar accessornullary1d = require( './1d_accessors.js' );\nvar accessornullary2d = require( './2d_accessors.js' );\nvar accessornullary3d = require( './3d_accessors.js' );\nvar accessornullary4d = require( './4d_accessors.js' );\nvar accessornullary5d = require( './5d_accessors.js' );\nvar accessornullary6d = require( './6d_accessors.js' );\nvar accessornullary7d = require( './7d_accessors.js' );\nvar accessornullary8d = require( './8d_accessors.js' );\nvar accessornullary9d = require( './9d_accessors.js' );\nvar accessornullary10d = require( './10d_accessors.js' );\nvar accessornullarynd = require( './nd_accessors.js' );\nvar nullary0d = require( './0d.js' );\nvar nullary1d = require( './1d.js' );\nvar nullary2d = require( './2d.js' );\nvar nullary3d = require( './3d.js' );\nvar nullary4d = require( './4d.js' );\nvar nullary5d = require( './5d.js' );\nvar nullary6d = require( './6d.js' );\nvar nullary7d = require( './7d.js' );\nvar nullary8d = require( './8d.js' );\nvar nullary9d = require( './9d.js' );\nvar nullary10d = require( './10d.js' );\nvar nullarynd = require( './nd.js' );\n\n\n// VARIABLES //\n\nvar NULLARY = [\n\tnullary0d,\n\tnullary1d,\n\tnullary2d,\n\tnullary3d,\n\tnullary4d,\n\tnullary5d,\n\tnullary6d,\n\tnullary7d,\n\tnullary8d,\n\tnullary9d,\n\tnullary10d\n];\nvar ACCESSOR_NULLARY = [\n\taccessornullary0d,\n\taccessornullary1d,\n\taccessornullary2d,\n\taccessornullary3d,\n\taccessornullary4d,\n\taccessornullary5d,\n\taccessornullary6d,\n\taccessornullary7d,\n\taccessornullary8d,\n\taccessornullary9d,\n\taccessornullary10d\n];\nvar BLOCKED_NULLARY = [\n\tblockednullary2d, // 0\n\tblockednullary3d,\n\tblockednullary4d,\n\tblockednullary5d,\n\tblockednullary6d,\n\tblockednullary7d,\n\tblockednullary8d,\n\tblockednullary9d,\n\tblockednullary10d // 8\n];\nvar BLOCKED_ACCESSOR_NULLARY = [\n\tblockedaccessornullary2d, // 0\n\tblockedaccessornullary3d,\n\tblockedaccessornullary4d,\n\tblockedaccessornullary5d,\n\tblockedaccessornullary6d,\n\tblockedaccessornullary7d,\n\tblockedaccessornullary8d,\n\tblockedaccessornullary9d,\n\tblockedaccessornullary10d // 8\n];\nvar MAX_DIMS = NULLARY.length - 1;\n\n\n// MAIN //\n\n/**\n* Applies a nullary function and assigns results to elements in an output ndarray.\n*\n* ## Notes\n*\n* - A provided ndarray should be an `object` with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one output array\n* @param {Callback} fcn - nullary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the ioutput ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary( [ x ], fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\nfunction nullary( arrays, fcn ) {\n\tvar ndims;\n\tvar xmmv;\n\tvar shx;\n\tvar iox;\n\tvar len;\n\tvar sx;\n\tvar ox;\n\tvar ns;\n\tvar x;\n\tvar d;\n\tvar i;\n\n\t// Unpack the ndarray and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\tshx = x.shape;\n\tndims = shx.length;\n\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_NULLARY[ ndims ]( x, fcn );\n\t\t}\n\t\treturn NULLARY[ ndims ]( x, fcn );\n\t}\n\t// Compute the number of elements and the number of singleton dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = shx[ i ];\n\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= d;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( d === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided an empty ndarray...\n\tif ( len === 0 ) {\n\t\treturn;\n\t}\n\t// Determine whether the ndarray is one-dimensional and thus readily translates to a one-dimensional strided array...\n\tif ( ndims === 1 ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_NULLARY[ ndims ]( x, fcn );\n\t\t}\n\t\treturn NULLARY[ ndims ]( x, fcn );\n\t}\n\tsx = x.strides;\n\n\t// Determine whether the ndarray has only **one** non-singleton dimension (e.g., ndims=4, shape=[10,1,1,1]) so that we can treat an ndarray as being equivalent to a one-dimensional strided array...\n\tif ( ns === ndims-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( shx[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tx.shape = [ shx[i] ];\n\t\tx.strides = [ sx[i] ];\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn ACCESSOR_NULLARY[ 1 ]( x, fcn );\n\t\t}\n\t\treturn NULLARY[ 1 ]( x, fcn );\n\t}\n\tiox = iterationOrder( sx ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tif ( iox !== 0 ) {\n\t\t// Determine the minimum and maximum linear indices which are accessible by the array view:\n\t\txmmv = minmaxViewBufferIndex( shx, sx, x.offset );\n\n\t\t// Determine whether we can ignore shape (and strides) and treat the ndarray as a linear one-dimensional strided array...\n\t\tif ( len === ( xmmv[1]-xmmv[0]+1 ) ) {\n\t\t\t// Note: the above is equivalent to @stdlib/ndarray/base/assert/is-contiguous, but in-lined so we can retain computed values...\n\t\t\tif ( iox === 1 ) {\n\t\t\t\tox = xmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\tox = xmmv[ 1 ];\n\t\t\t}\n\t\t\tx.shape = [ len ];\n\t\t\tx.strides = [ iox ];\n\t\t\tx.offset = ox;\n\t\t\tif ( x.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_NULLARY[ 1 ]( x, fcn );\n\t\t\t}\n\t\t\treturn NULLARY[ 1 ]( x, fcn );\n\t\t}\n\t\t// The ndarray is non-contiguous, so we cannot directly use one-dimensional array functionality...\n\n\t\t// Determine whether we can use simple nested loops...\n\t\tif ( ndims <= MAX_DIMS ) {\n\t\t\t// So long as iteration always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\t\tif ( x.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_NULLARY[ ndims ]( x, fcn );\n\t\t\t}\n\t\t\treturn NULLARY[ ndims ]( x, fcn );\n\t\t}\n\t\t// Fall-through to blocked iteration...\n\t}\n\t// At this point, we're either dealing with a non-contiguous n-dimensional array or a high dimensional n-dimensional array, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_NULLARY[ ndims-2 ]( x, fcn );\n\t\t}\n\t\treturn BLOCKED_NULLARY[ ndims-2 ]( x, fcn );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol ) {\n\t\treturn accessornullarynd( x, fcn );\n\t}\n\tnullarynd( x, fcn );\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 nullary function and assign results to elements in an output ndarray.\n*\n* @module @stdlib/ndarray/base/nullary\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var nullary = require( '@stdlib/ndarray/base/nullary' );\n*\n* function fcn() {\n* return 10.0;\n* }\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( 12 );\n*\n* // Define the shape of the output array:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n*\n* // Define the index offset:\n* var ox = 1;\n*\n* // Create the ioutput ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Apply the nullary function:\n* nullary( [ x ], fcn );\n*\n* console.log( x.data );\n* // => [ 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0, 0.0, 10.0, 10.0, 0.0 ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "[\n \"same\",\n \"promoted\",\n \"bool\",\n\t\"signed_integer\",\n \"unsigned_integer\",\n \"integer\",\n \"floating_point\",\n \"real_floating_point\",\n \"complex_floating_point\",\n \"real\",\n \"numeric\",\n \"default\"\n]\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 POLICIES = require( './policies.json' );\n\n\n// MAIN //\n\n/**\n* Returns a list of output ndarray data type policies.\n*\n* @returns {StringArray} list of ndarray data type policies\n*\n* @example\n* var list = policies();\n* // returns [...]\n*/\nfunction policies() {\n\treturn POLICIES.slice();\n}\n\n\n// EXPORTS //\n\nmodule.exports = policies;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 an object mapping supported data type policy strings to enumeration constants.\n*\n* ## Notes\n*\n* - Downstream consumers of this mapping should **not** rely on specific integer values (e.g., `SAME == 0`). Instead, the object should be used in an opaque manner.\n* - The main purpose of this function is JavaScript and C inter-operation of ndarray objects.\n*\n* @private\n* @returns {Object} object mapping supported dtype policies to enumeration constants\n*\n* @example\n* var table = enumeration();\n* // returns \n*/\nfunction enumeration() {\n\t// NOTE: the following should match the C `output_dtype_policies.h` enumeration!!!!\n\treturn {\n\t\t'same': 0,\n\t\t'promoted': 1,\n\t\t'bool': 2,\n\t\t'signed_integer': 3,\n\t\t'unsigned_integer': 4,\n\t\t'integer': 5,\n\t\t'floating_point': 6,\n\t\t'real_floating_point': 7,\n\t\t'complex_floating_point': 8,\n\t\t'real': 9,\n\t\t'numeric': 10,\n\t\t'default': 11\n\t};\n}\n\n\n// EXPORTS //\n\nmodule.exports = enumeration;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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-read-only-property' );\nvar objectKeys = require( '@stdlib/utils/keys' );\n\n\n// MAIN //\n\n/**\n* Copies all enumerable own properties from a source object to a target object as enumerable read-only properties.\n*\n* @private\n* @param {Object} target - target object\n* @param {Object} source - source object\n* @returns {Object} modified target object\n*\n* @example\n* var source = {\n* 'beep': 'boop'\n* };\n* var target = {};\n*\n* var out = assign( target, source );\n* // returns \n*\n* var bool = ( out === target );\n* // returns true\n*\n* var v = target.beep;\n* // returns 'boop'\n*/\nfunction assign( target, source ) {\n\tvar keys;\n\tvar k;\n\tvar i;\n\n\tkeys = objectKeys( source );\n\tfor ( i = 0; i < keys.length; i++ ) {\n\t\tk = keys[ i ];\n\t\tsetReadOnly( target, k, source[ k ] );\n\t}\n\treturn target;\n}\n\n\n// EXPORTS //\n\nmodule.exports = assign;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 output ndarray data type policies.\n*\n* @module @stdlib/ndarray/output-dtype-policies\n*\n* @example\n* var policies = require( '@stdlib/ndarray/output-dtype-policies' );\n*\n* var list = policies();\n* // returns [...]\n*/\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar main = require( './main.js' );\nvar enumeration = require( './enum.js' );\nvar assign = require( './assign.js' );\n\n\n// MAIN //\n\nsetReadOnly( main, 'enum', enumeration );\nassign( main, enumeration() );\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 objectInverse = require( '@stdlib/utils/object-inverse' );\nvar enumeration = require( './../../../output-dtype-policies' ).enum;\n\n\n// VARIABLES //\n\nvar hash = objectInverse( enumeration(), {\n\t'duplicates': false\n});\n\n\n// MAIN //\n\n/**\n* Returns the policy string associated with an output ndarray data type policy enumeration constant.\n*\n* @param {integer} policy - policy enumeration constant\n* @returns {(string|null)} policy string or null\n*\n* @example\n* var str2enum = require( '@stdlib/ndarray/base/output-policy-str2enum' );\n*\n* var v = str2enum( 'same' );\n* // returns \n*\n* var policy = enum2str( v );\n* // returns 'same'\n*/\nfunction enum2str( policy ) {\n\tvar v = hash[ policy ];\n\treturn ( typeof v === 'string' ) ? v : null; // note: we include this guard to prevent walking the prototype chain\n}\n\n\n// EXPORTS //\n\nmodule.exports = enum2str;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 policy string associated with an output ndarray data type policy enumeration constant.\n*\n* @module @stdlib/ndarray/base/output-policy-enum2str\n*\n* @example\n* var str2enum = require( '@stdlib/ndarray/base/output-policy-str2enum' );\n* var enum2str = require( '@stdlib/ndarray/base/output-policy-enum2str' );\n*\n* var v = str2enum( 'same' );\n* // returns \n*\n* var policy = enum2str( v );\n* // returns 'same'\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 enumeration = require( './../../../output-dtype-policies' ).enum;\n\n\n// VARIABLES //\n\nvar ENUM = enumeration();\n\n\n// MAIN //\n\n/**\n* Returns the enumeration constant associated with an output ndarray data type policy string.\n*\n* ## Notes\n*\n* - Downstream consumers of this function should **not** rely on specific integer values (e.g., `SAME == 0`). Instead, the function should be used in an opaque manner.\n*\n* @param {string} policy - policy string\n* @returns {(integer|null)} integer value or null\n*\n* @example\n* var v = str2enum( 'same' );\n* // returns \n*/\nfunction str2enum( policy ) {\n\tvar v = ENUM[ policy ];\n\treturn ( typeof v === 'number' ) ? v : null; // note: we include this guard to prevent walking the prototype chain\n}\n\n\n// EXPORTS //\n\nmodule.exports = str2enum;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 enumeration constant associated with an output ndarray data type policy string.\n*\n* @module @stdlib/ndarray/base/output-policy-str2enum\n*\n* @example\n* var str2enum = require( '@stdlib/ndarray/base/output-policy-str2enum' );\n*\n* var v = str2enum( 'same' );\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 enum2str = require( './../../../base/output-policy-enum2str' );\nvar str2enum = require( './../../../base/output-policy-str2enum' );\n\n\n// MAIN //\n\n/**\n* Returns the enumeration constant associated with a supported ndarray data type policy value.\n*\n* ## Notes\n*\n* - Downstream consumers of this function should **not** rely on specific integer values (e.g., `SAME == 0`). Instead, the function should be used in an opaque manner.\n*\n* @param {*} policy - policy value\n* @returns {(integer|null)} enumeration constant or null\n*\n* @example\n* var v = resolve( 'same' );\n* // returns \n*/\nfunction resolve( policy ) {\n\tvar t = ( typeof policy );\n\tif ( t === 'number' ) {\n\t\treturn ( enum2str( policy ) ) ? policy : null;\n\t}\n\tif ( t === 'string' ) {\n\t\treturn str2enum( policy );\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = resolve;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 enumeration constant associated with a supported ndarray data type policy value.\n*\n* @module @stdlib/ndarray/base/output-policy-resolve-enum\n*\n* @example\n* var resolve = require( '@stdlib/ndarray/base/output-policy-resolve-enum' );\n*\n* var v = resolve( 'same' );\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 enum2str = require( './../../../base/output-policy-enum2str' );\nvar str2enum = require( './../../../base/output-policy-str2enum' );\n\n\n// MAIN //\n\n/**\n* Returns the policy string associated with a supported ndarray data type policy value.\n*\n* @param {*} policy - policy value\n* @returns {(string|null)} policy string or null\n*\n* @example\n* var str2enum = require( '@stdlib/ndarray/base/output-policy-str2enum' );\n*\n* var v = resolve( str2enum( 'same' ) );\n* // returns 'same'\n*/\nfunction resolve( policy ) {\n\tvar t = ( typeof policy );\n\tif ( t === 'string' ) {\n\t\treturn ( str2enum( policy ) === null ) ? null : policy;\n\t}\n\tif ( t === 'number' ) {\n\t\treturn enum2str( policy );\n\t}\n\treturn null;\n}\n\n\n// EXPORTS //\n\nmodule.exports = resolve;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 policy string associated with a supported ndarray data type policy value.\n*\n* @module @stdlib/ndarray/base/output-policy-resolve-str\n*\n* @example\n* var str2enum = require( '@stdlib/ndarray/base/output-policy-str2enum' );\n* var resolve = require( '@stdlib/ndarray/base/output-policy-resolve-str' );\n*\n* var v = resolve( str2enum( 'same' ) );\n* // returns 'same'\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 isReadOnly = require( './../../../base/assert/is-read-only' );\nvar getDType = require( './../../../base/dtype' );\nvar getShape = require( './../../../base/shape' );\nvar getStrides = require( './../../../base/strides' );\nvar getOffset = require( './../../../base/offset' );\nvar getOrder = require( './../../../base/order' );\nvar getData = require( './../../../base/data-buffer' );\n\n\n// MAIN //\n\n/**\n* Returns an array with a specified number of prepended singleton dimensions.\n*\n* @param {ndarray} x - input array\n* @param {NonNegativeInteger} n - number of singleton dimensions to prepend\n* @returns {ndarray} output array\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var shx = x.shape;\n* // returns [ 2, 2 ]\n*\n* var y = prependSingletonDimensions( x, 3 );\n* // returns \n*\n* var shy = y.shape;\n* // returns [ 1, 1, 1, 2, 2 ]\n*\n* var v = y.get( 0, 0, 0, 0, 0 );\n* // returns 1\n*\n* v = y.get( 0, 0, 0, 0, 1 );\n* // returns 2\n*\n* v = y.get( 0, 0, 0, 1, 0 );\n* // returns 3\n*\n* v = y.get( 0, 0, 0, 1, 1 );\n* // returns 4\n*/\nfunction prependSingletonDimensions( x, n ) { // eslint-disable-line id-length\n\tvar strides;\n\tvar shape;\n\tvar sh;\n\tvar st;\n\tvar N;\n\tvar i;\n\n\tsh = getShape( x, false );\n\tst = getStrides( x, false );\n\tN = sh.length;\n\n\tstrides = [];\n\tshape = [];\n\n\t// Prepend singleton dimensions...\n\tfor ( i = 0; i < n; i++ ) {\n\t\tshape.push( 1 );\n\t\tstrides.push( st[ 0 ] );\n\t}\n\t// Copy remaining dimensions...\n\tfor ( i = 0; i < N; i++ ) {\n\t\tshape.push( sh[ i ] );\n\t\tstrides.push( st[ i ] );\n\t}\n\tif ( isReadOnly( x ) ) {\n\t\t// If provided a read-only view, the returned array should also be read-only...\n\t\treturn new x.constructor( getDType( x ), getData( x ), shape, strides, getOffset( x ), getOrder( x ), { // eslint-disable-line max-len\n\t\t\t'readonly': true\n\t\t});\n\t}\n\treturn new x.constructor( getDType( x ), getData( x ), shape, strides, getOffset( x ), getOrder( x ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nmodule.exports = prependSingletonDimensions;\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* Prepend singleton dimensions.\n*\n* @module @stdlib/ndarray/base/prepend-singleton-dimensions\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n* var prependSingletonDimensions = require( '@stdlib/ndarray/base/prepend-singleton-dimensions' );\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var shx = x.shape;\n* // returns [ 2, 2 ]\n*\n* var y = prependSingletonDimensions( x, 3 );\n* // returns \n*\n* var shy = y.shape;\n* // returns [ 1, 1, 1, 2, 2 ]\n*\n* var v = y.get( 0, 0, 0, 0, 0 );\n* // returns 1\n*\n* v = y.get( 0, 0, 0, 0, 1 );\n* // returns 2\n*\n* v = y.get( 0, 0, 0, 1, 0 );\n* // returns 3\n*\n* v = y.get( 0, 0, 0, 1, 1 );\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) 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 isReadOnly = require( './../../../base/assert/is-read-only' );\nvar getDType = require( './../../../base/dtype' );\nvar getShape = require( './../../../base/shape' );\nvar getStrides = require( './../../../base/strides' );\nvar getOffset = require( './../../../base/offset' );\nvar getOrder = require( './../../../base/order' );\nvar getData = require( './../../../base/data-buffer' );\n\n\n// MAIN //\n\n/**\n* Returns an array without singleton dimensions.\n*\n* ## Notes\n*\n* - If a provided ndarray does not have any singleton dimensions, the function returns the provided ndarray unchanged.\n* - If a provided ndarray does have singleton dimensions, the function returns a new ndarray view.\n*\n* @param {ndarray} x - input array\n* @returns {ndarray} squeezed array\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ], {\n* 'ndmin': 5\n* });\n* // returns \n*\n* var shx = x.shape;\n* // returns [ 1, 1, 1, 2, 2 ]\n*\n* var y = removeSingletonDimensions( x );\n* // returns \n*\n* var shy = y.shape;\n* // returns [ 2, 2 ]\n*\n* var v = y.get( 0, 0 );\n* // returns 1\n*\n* v = y.get( 0, 1 );\n* // returns 2\n*\n* v = y.get( 1, 0 );\n* // returns 3\n*\n* v = y.get( 1, 1 );\n* // returns 4\n*/\nfunction removeSingletonDimensions( x ) {\n\tvar strides;\n\tvar shape;\n\tvar sh;\n\tvar st;\n\tvar N;\n\tvar i;\n\n\tsh = getShape( x, false );\n\tst = getStrides( x, false );\n\tN = sh.length;\n\n\tstrides = [];\n\tshape = [];\n\n\t// Check for singleton dimensions...\n\tfor ( i = 0; i < N; i++ ) {\n\t\tif ( sh[ i ] !== 1 ) {\n\t\t\tshape.push( sh[ i ] );\n\t\t\tstrides.push( st[ i ] );\n\t\t}\n\t}\n\tif ( shape.length === N ) {\n\t\t// We did not find any singleton dimensions...\n\t\treturn x;\n\t}\n\tif ( isReadOnly( x ) ) {\n\t\t// If provided a read-only view, the returned array should also be read-only...\n\t\treturn new x.constructor( getDType( x ), getData( x ), shape, strides, getOffset( x ), getOrder( x ), { // eslint-disable-line max-len\n\t\t\t'readonly': true\n\t\t});\n\t}\n\treturn new x.constructor( getDType( x ), getData( x ), shape, strides, getOffset( x ), getOrder( x ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nmodule.exports = removeSingletonDimensions;\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* Remove singleton dimensions.\n*\n* @module @stdlib/ndarray/base/remove-singleton-dimensions\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n* var removeSingletonDimensions = require( '@stdlib/ndarray/base/remove-singleton-dimensions' );\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ], {\n* 'ndmin': 5\n* });\n* // returns \n*\n* var shx = x.shape;\n* // returns [ 1, 1, 1, 2, 2 ]\n*\n* var y = removeSingletonDimensions( x );\n* // returns \n*\n* var shy = y.shape;\n* // returns [ 2, 2 ]\n*\n* var v = y.get( 0, 0 );\n* // returns 1\n*\n* v = y.get( 0, 1 );\n* // returns 2\n*\n* v = y.get( 1, 0 );\n* // returns 3\n*\n* v = y.get( 1, 1 );\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 args2multislice = require( '@stdlib/slice/base/args2multislice' );\nvar Slice = require( '@stdlib/slice/ctor' );\nvar filled = require( '@stdlib/array/base/filled' );\nvar slice = require( './../../../base/slice' );\nvar ndims = require( './../../../base/ndims' );\n\n\n// MAIN //\n\n/**\n* Returns a view of an input ndarray in which the order of elements along each dimension is reversed.\n*\n* @param {ndarray} x - input array\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @returns {ndarray} ndarray view\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = reverse( x, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 3, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 6.0, 5.0 ], [ 4.0, 3.0 ], [ 2.0, 1.0 ] ]\n*/\nfunction reverse( x, writable ) {\n\tvar args = filled( new Slice( null, null, -1 ), ndims( x ) );\n\treturn slice( x, args2multislice( args ), true, writable );\n}\n\n\n// EXPORTS //\n\nmodule.exports = reverse;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 view of an input ndarray in which the order of elements along each dimension is reversed.\n*\n* @module @stdlib/ndarray/base/reverse\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var reverse = require( '@stdlib/ndarray/base/reverse' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = reverse( x, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 3, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 6.0, 5.0 ], [ 4.0, 3.0 ], [ 2.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) 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 IS_LITTLE_ENDIAN = require( '@stdlib/assert/is-little-endian' );\nvar ArrayBuffer = require( '@stdlib/array/buffer' );\nvar DataView = require( '@stdlib/array/dataview' );\nvar BigInt = require( '@stdlib/bigint/ctor' );\nvar bytesPerElement = require( './../../../base/bytes-per-element' );\nvar dtypes = require( './../../../dtypes' ).enum;\nvar orders = require( './../../../orders' ).enum;\nvar modes = require( './../../../index-modes' ).enum;\nvar getDType = require( './../../../base/dtype' );\nvar getShape = require( './../../../base/shape' );\nvar getStrides = require( './../../../base/strides' );\nvar getOffset = require( './../../../base/offset' );\nvar getOrder = require( './../../../base/order' );\n\n\n// VARIABLES //\n\nvar DTYPES = dtypes();\nvar ORDERS = orders();\nvar MODES = modes();\n\n\n// MAIN //\n\n/**\n* Serializes ndarray meta data.\n*\n* ## Notes\n*\n* - This function takes into account ndarray-like objects which may support index modes.\n*\n* - Serialization is performed according to host byte order (endianness).\n*\n* - Meta data format:\n*\n* ```text\n* | endianness (1 byte) | (2 bytes) | (8 bytes) | (ndims*8 bytes) | (ndims*8 bytes) | (8 bytes) | (1 byte) | (1 byte) | (8 bytes) | (nsubmodes*1 bytes) | (4 bytes) |\n* ```\n*\n* which translates to the following `ArrayBuffer` layout:\n*\n* ```text\n* ArrayBuffer[\n* [int8],\n* [int16],\n* [int64],\n* [ndims*int64],\n* [ndims*int64],\n* [int64],\n* [int8],\n* [int8],\n* [int64],\n* [nsubmodes*int8],\n* [int32]\n* ]\n* ```\n*\n* where `strides` and `offset` are in units of bytes.\n*\n* - If the endianness is `1`, the byte order is little endian. If the endianness is `0`, the byte order is big endian.\n*\n* - Buffer length:\n*\n* ```text\n* 1 + 2 + 8 + (ndims*8) + (ndims*8) + 8 + 1 + 1 + 8 + (nsubmodes*1) + 4 = 33 + (ndims*16) + nsubmodes\n* ```\n*\n* For example, consider a three-dimensional ndarray with one subscript index mode (submode):\n*\n* ```text\n* 33 + (3*16) + 1 = 82 bytes\n* ```\n*\n* - Views:\n*\n* - endianness: `Int8Array( buf, 0, 1 )`\n* - dtype: `Int16Array( buf, 1, 1 )`\n* - ndims: `Int64Array( buf, 3, 1 )`\n* - shape: `Int64Array( buf, 11, ndims )`\n* - strides: `Int64Array( buf, 11+(ndims*8), ndims )`\n* - offset: `Int64Array( buf, 11+(ndims*16), 1 )`\n* - order: `Int8Array( buf, 19+(ndims*16), 1 )`\n* - mode: `Int8Array( buf, 20+(ndims*16), 1 )`\n* - nsubmodes: `Int64Array( buf, 21+(ndims*16), 1 )`\n* - submodes: `Int8Array( buf, 29+(ndims*16), nsubmodes )`\n* - flags: `Int32Array( buf, 29+(ndims*16)+nsubmodes, 1 )`\n*\n* @param {ndarrayLike} x - input array\n* @param {string} x.dtype - array data type\n* @param {NonNegativeIntegerArray} x.shape - array shape\n* @param {IntegerArray} x.strides - array strides\n* @param {NonNegativeInteger} x.offset - array index offset\n* @param {string} x.order - array order\n* @param {string} [x.mode='throw'] - array index mode\n* @param {StringArray} [x.submode=[x.mode]] - array subscript index modes\n* @param {Object} [x.flags={}] - array flags\n* @returns {DataView} serialized meta data\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n*\n* var dv = serialize( x );\n* // returns \n*/\nfunction serialize( x ) {\n\tvar nbytes;\n\tvar flgs;\n\tvar len;\n\tvar dt;\n\tvar sh;\n\tvar st;\n\tvar sm;\n\tvar v;\n\tvar m;\n\tvar o;\n\tvar s;\n\tvar N;\n\tvar M;\n\tvar i;\n\n\t// Check for interface which does the work of serializing to a DataView for us...\n\tif ( x.__array_meta_dataview__ ) { // eslint-disable-line no-underscore-dangle\n\t\treturn x.__array_meta_dataview__(); // eslint-disable-line no-underscore-dangle\n\t}\n\t// Extract meta data known to be attached to ndarray-like objects:\n\tdt = getDType( x );\n\tsh = getShape( x, false );\n\tst = getStrides( x, false );\n\tN = sh.length; // ndims\n\n\t// Extract meta data which may be available on ndarray-like objects (e.g., stdlib ndarray instances):\n\tm = x.mode || 'throw';\n\tsm = x.submode || [ m ];\n\tM = sm.length;\n\n\t// Determine number of bytes per element according to the ndarray dtype:\n\tnbytes = bytesPerElement( dt );\n\n\t// Compute the amount of memory we need to allocate for storing meta data:\n\tlen = 33 + (N*16) + M;\n\n\t// Allocate raw memory and create a view for interfacing with the allocated memory:\n\tv = new DataView( new ArrayBuffer( len ) );\n\n\t// Endianness: (byteoffset: 0; bytelength: 1)\n\to = 0;\n\tv.setInt8( o, ( IS_LITTLE_ENDIAN ) ? 1 : 0 );\n\n\t// Data type: (byteoffset: 1; bytelength: 2)\n\to += 1;\n\tv.setInt16( o, DTYPES[ dt ], IS_LITTLE_ENDIAN );\n\n\t// Number of dimensions: (byteoffset: 3; bytelength: 8)\n\to += 2;\n\tv.setBigInt64( o, BigInt( N ), IS_LITTLE_ENDIAN );\n\n\t// Shape and strides: (byteoffset: 11 and 11+(ndims*8), respectively; bytelength: ndims*8 for both shape and strides, and, thus, ndims*16 total)\n\ts = N * 8; // stride length between a dimension (shape[i]) and its associated stride\n\to += 8;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tv.setBigInt64( o, BigInt( sh[i] ), IS_LITTLE_ENDIAN );\n\t\tv.setBigInt64( o+s, BigInt( st[i]*nbytes ), IS_LITTLE_ENDIAN );\n\t\to += 8;\n\t}\n\t// Offset: (byteoffset: 11+(ndims*16); bytelength: 8)\n\to += s;\n\tv.setBigInt64( o, BigInt( getOffset( x )*nbytes ), IS_LITTLE_ENDIAN );\n\n\t// Order: (byteoffset: 19+(ndims*16); bytelength: 1)\n\to += 8;\n\tv.setInt8( o, ORDERS[ getOrder( x ) ] );\n\n\t// Index mode: (byteoffset: 20+(ndims*16); bytelength: 1)\n\to += 1;\n\tv.setInt8( o, MODES[ m ] );\n\n\t// Number of index submodes: (byteoffset: 21+(ndims*16); bytelength: 8)\n\to += 1;\n\tv.setBigInt64( o, BigInt( M ), IS_LITTLE_ENDIAN );\n\n\t// Submodes: (byteoffset: 29+(ndims*16); bytelength: nsubmodes*1)\n\to += 8;\n\tfor ( i = 0; i < M; i++ ) {\n\t\tv.setInt8( o, MODES[ sm[i] ] );\n\t\to += 1;\n\t}\n\t// Flags: (byteoffset: 29+(ndims*16)+nsubmodes; bytelength: 4)\n\tflgs = 0|0;\n\tif ( x.flags ) {\n\t\tflgs |= ( x.flags.READONLY ) ? 4 : 0; // 00000000 00000000 00000000 00000100\n\t}\n\tv.setInt32( o, flgs, IS_LITTLE_ENDIAN );\n\n\treturn v;\n}\n\n\n// EXPORTS //\n\nmodule.exports = serialize;\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 IS_LITTLE_ENDIAN = require( '@stdlib/assert/is-little-endian' );\nvar float64ToInt64Bytes = require( '@stdlib/number/float64/base/to-int64-bytes' ).assign;\nvar ArrayBuffer = require( '@stdlib/array/buffer' );\nvar Uint8Array = require( '@stdlib/array/uint8' );\nvar DataView = require( '@stdlib/array/dataview' );\nvar bytesPerElement = require( './../../../base/bytes-per-element' );\nvar dtypes = require( './../../../dtypes' ).enum;\nvar orders = require( './../../../orders' ).enum;\nvar modes = require( './../../../index-modes' ).enum;\nvar getDType = require( './../../../base/dtype' );\nvar getShape = require( './../../../base/shape' );\nvar getStrides = require( './../../../base/strides' );\nvar getOffset = require( './../../../base/offset' );\nvar getOrder = require( './../../../base/order' );\n\n\n// VARIABLES //\n\nvar DTYPES = dtypes();\nvar ORDERS = orders();\nvar MODES = modes();\n\n\n// MAIN //\n\n/**\n* Serializes ndarray meta data.\n*\n* ## Notes\n*\n* - This function takes into account ndarray-like objects which may support index modes.\n*\n* - Serialization is performed according to host byte order (endianness).\n*\n* - Meta data format:\n*\n* ```text\n* | endianness (1 byte) | (2 bytes) | (8 bytes) | (ndims*8 bytes) | (ndims*8 bytes) | (8 bytes) | (1 byte) | (1 byte) | (8 bytes) | (nsubmodes*1 bytes) | (4 bytes) |\n* ```\n*\n* which translates to the following `ArrayBuffer` layout:\n*\n* ```text\n* ArrayBuffer[\n* [int8],\n* [int16],\n* [int64],\n* [ndims*int64],\n* [ndims*int64],\n* [int64],\n* [int8],\n* [int8],\n* [int64],\n* [nsubmodes*int8],\n* [int32]\n* ]\n* ```\n*\n* where `strides` and `offset` are in units of bytes.\n*\n* - If the endianness is `1`, the byte order is little endian. If the endianness is `0`, the byte order is big endian.\n*\n* - Buffer length:\n*\n* ```text\n* 1 + 2 + 8 + (ndims*8) + (ndims*8) + 8 + 1 + 1 + 8 + (nsubmodes*1) = 33 + (ndims*16) + nsubmodes\n* ```\n*\n* For example, consider a three-dimensional ndarray with one subscript index mode (submode):\n*\n* ```text\n* 33 + (3*16) + 1 = 82 bytes\n* ```\n*\n* - Views:\n*\n* - endianness: `Int8Array( buf, 0, 1 )`\n* - dtype: `Int16Array( buf, 1, 1 )`\n* - ndims: `Int64Array( buf, 3, 1 )`\n* - shape: `Int64Array( buf, 11, ndims )`\n* - strides: `Int64Array( buf, 11+(ndims*8), ndims )`\n* - offset: `Int64Array( buf, 11+(ndims*16), 1 )`\n* - order: `Int8Array( buf, 19+(ndims*16), 1 )`\n* - mode: `Int8Array( buf, 20+(ndims*16), 1 )`\n* - nsubmodes: `Int64Array( buf, 21+(ndims*16), 1 )`\n* - submodes: `Int8Array( buf, 29+(ndims*16), nsubmodes )`\n* - flags: `Int32Array( buf, 29+(ndims*16)+nsubmodes, 1 )`\n*\n* @private\n* @param {ndarrayLike} x - input array\n* @param {string} x.dtype - array data type\n* @param {NonNegativeIntegerArray} x.shape - array shape\n* @param {IntegerArray} x.strides - array strides\n* @param {NonNegativeInteger} x.offset - array index offset\n* @param {string} x.order - array order\n* @param {string} [x.mode='throw'] - array index mode\n* @param {StringArray} [x.submode=[x.mode]] - array subscript index modes\n* @param {Object} [x.flags={}] - array flags\n* @returns {DataView} serialized meta data\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n*\n* var dv = serialize( x );\n* // returns \n*/\nfunction serialize( x ) {\n\tvar nbytes;\n\tvar bytes;\n\tvar flgs;\n\tvar len;\n\tvar dt;\n\tvar sh;\n\tvar st;\n\tvar sm;\n\tvar v;\n\tvar m;\n\tvar o;\n\tvar s;\n\tvar N;\n\tvar M;\n\tvar i;\n\n\t// Check for interface which does the work of serializing to a DataView for us...\n\tif ( x.__array_meta_dataview__ ) { // eslint-disable-line no-underscore-dangle\n\t\treturn x.__array_meta_dataview__(); // eslint-disable-line no-underscore-dangle\n\t}\n\t// Extract meta data known to be attached to ndarray-like objects:\n\tdt = getDType( x);\n\tsh = getShape( x, false );\n\tst = getStrides( x, false );\n\tN = sh.length; // ndims\n\n\t// Extract meta data which may be available on ndarray-like objects (e.g., stdlib ndarray instances):\n\tm = x.mode || 'throw';\n\tsm = x.submode || [ m ];\n\tM = sm.length;\n\n\t// Determine number of bytes per element according to the ndarray dtype:\n\tnbytes = bytesPerElement( dt );\n\n\t// Compute the amount of memory we need to allocate for storing meta data:\n\tlen = 33 + (N*16) + M;\n\n\t// Allocate raw memory and create a view for interfacing with the allocated memory:\n\tv = new DataView( new ArrayBuffer( len ) );\n\tbytes = new Uint8Array( v.buffer );\n\n\t// Endianness: (byteoffset: 0; bytelength: 1)\n\to = 0;\n\tv.setInt8( o, ( IS_LITTLE_ENDIAN ) ? 1 : 0 );\n\n\t// Data type: (byteoffset: 1; bytelength: 2)\n\to += 1;\n\tv.setInt16( o, DTYPES[ dt ], IS_LITTLE_ENDIAN );\n\n\t// Number of dimensions: (byteoffset: 3; bytelength: 8)\n\to += 2;\n\tfloat64ToInt64Bytes( N, bytes, 1, o );\n\n\t// Shape and strides: (byteoffset: 11 and 11+(ndims*8), respectively; bytelength: ndims*8 for both shape and strides, and, thus, ndims*16 total)\n\ts = N * 8; // stride length between a dimension (shape[i]) and its associated stride\n\to += 8;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tfloat64ToInt64Bytes( sh[i], bytes, 1, o );\n\t\tfloat64ToInt64Bytes( st[i]*nbytes, bytes, 1, o+s );\n\t\to += 8;\n\t}\n\t// Offset: (byteoffset: 11+(ndims*16); bytelength: 8)\n\to += s;\n\tfloat64ToInt64Bytes( getOffset( x )*nbytes, bytes, 1, o );\n\n\t// Order: (byteoffset: 19+(ndims*16); bytelength: 1)\n\to += 8;\n\tv.setInt8( o, ORDERS[ getOrder( x ) ] );\n\n\t// Index mode: (byteoffset: 20+(ndims*16); bytelength: 1)\n\to += 1;\n\tv.setInt8( o, MODES[ m ] );\n\n\t// Number of index submodes: (byteoffset: 21+(ndims*16); bytelength: 8)\n\to += 1;\n\tfloat64ToInt64Bytes( M, bytes, 1, o );\n\n\t// Submodes: (byteoffset: 29+(ndims*16); bytelength: nsubmodes*1)\n\to += 8;\n\tfor ( i = 0; i < M; i++ ) {\n\t\tv.setInt8( o, MODES[ sm[i] ] );\n\t\to += 1;\n\t}\n\t// Flags: (byteoffset: 29+(ndims*16)+nsubmodes; bytelength: 4)\n\tflgs = 0|0;\n\tif ( x.flags ) {\n\t\tflgs |= ( x.flags.READONLY ) ? 4 : 0; // 00000000 00000000 00000000 00000100\n\t}\n\tv.setInt32( o, flgs, IS_LITTLE_ENDIAN );\n\n\treturn v;\n}\n\n\n// EXPORTS //\n\nmodule.exports = serialize;\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* Serialize ndarray meta data.\n*\n* @module @stdlib/ndarray/base/serialize-meta-data\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n* var serialize = require( '@stdlib/ndarray/base/serialize-meta-data' );\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n*\n* var dv = serialize( x );\n* // returns \n*/\n\n// MODULES //\n\nvar hasBigIntSupport = require( '@stdlib/assert/has-bigint-support' );\nvar builtin = require( './main.js' );\nvar polyfill = require( './polyfill.js' );\n\n\n// MAIN //\n\nvar main;\nif ( hasBigIntSupport() ) {\n\tmain = builtin;\n} else {\n\tmain = polyfill;\n}\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// MAIN //\n\n/**\n* Returns the number of singleton dimensions.\n*\n* ## Notes\n*\n* - A singleton dimension is a dimension whose size is equal to `1`.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @returns {NonNegativeInteger} number of singleton dimensions\n*\n* @example\n* var shape = [ 2, 1, 1 ];\n*\n* var n = singletonDimensions( shape );\n* // returns 2\n*\n* @example\n* var shape = [ 2, 2, 2 ];\n*\n* var n = singletonDimensions( shape );\n* // returns 0\n*/\nfunction singletonDimensions( shape ) {\n\tvar cnt;\n\tvar i;\n\n\tcnt = 0;\n\tfor ( i = 0; i < shape.length; i++ ) {\n\t\tif ( shape[ i ] === 1 ) {\n\t\t\tcnt += 1;\n\t\t}\n\t}\n\treturn cnt;\n}\n\n\n// EXPORTS //\n\nmodule.exports = singletonDimensions;\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* Return the number of singleton dimensions.\n*\n* @module @stdlib/ndarray/base/singleton-dimensions\n*\n* @example\n* var singletonDimensions = require( '@stdlib/ndarray/base/singleton-dimensions' );\n*\n* var shape = [ 2, 1, 1 ];\n*\n* var n = singletonDimensions( shape );\n* // returns 2\n*\n* @example\n* var singletonDimensions = require( '@stdlib/ndarray/base/singleton-dimensions' );\n*\n* var shape = [ 2, 2, 2 ];\n*\n* var n = singletonDimensions( shape );\n* // returns 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 isMostlySafeCast = require( './../../../base/assert/is-mostly-safe-data-type-cast' );\nvar broadcast = require( './../../../base/broadcast-array' );\nvar assign = require( './../../../base/assign' );\nvar slice = require( './../../../base/slice' );\nvar getDType = require( './../../../base/dtype' );\nvar getShape = require( './../../../base/shape' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Assigns element values from a broadcasted input ndarray to corresponding elements in an output ndarray view.\n*\n* @param {ndarray} x - input array\n* @param {ndarray} y - output array\n* @param {MultiSlice} s - multi-slice object for the output array\n* @param {boolean} strict - boolean indicating whether to enforce strict bounds checking\n* @throws {RangeError} number of slice dimensions must match the number of array dimensions\n* @throws {RangeError} slice exceeds array bounds\n* @throws {Error} input array must be broadcast compatible with an output array view\n* @throws {TypeError} input array cannot be safely cast to the output array data type\n* @returns {ndarray} output array\n*\n* @example\n* var Slice = require( '@stdlib/slice/ctor' );\n* var MultiSlice = require( '@stdlib/slice/multi' );\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndzeros = require( '@stdlib/ndarray/zeros' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n*\n* // Define an input array:\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* // Define an output array:\n* var y = ndzeros( [ 2, 3, 2 ], {\n* 'dtype': x.dtype\n* });\n*\n* // Create a slice:\n* var s0 = null;\n* var s1 = new Slice( null, null, -1 );\n* var s2 = new Slice( null, null, -1 );\n* var s = new MultiSlice( s0, s1, s2 );\n* // returns \n*\n* // Perform assignment:\n* var out = sliceAssign( x, y, s, false );\n* // returns \n*\n* var bool = ( out === y );\n* // returns true\n*\n* arr = ndarray2array( y );\n* // returns [ [ [ 6.0, 5.0 ], [ 4.0, 3.0 ], [ 2.0, 1.0 ] ], [ [ 6.0, 5.0 ], [ 4.0, 3.0 ], [ 2.0, 1.0 ] ] ]\n*/\nfunction sliceAssign( x, y, s, strict ) {\n\tvar view;\n\tvar xdt;\n\tvar ydt;\n\n\txdt = getDType( x );\n\tydt = getDType( y );\n\n\t// Safe casts are always allowed and allow same kind casts (i.e., downcasts) only when the output data type is floating-point...\n\tif ( !isMostlySafeCast( xdt, ydt ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Input array values cannot be safely cast to the output array data type. Data types: [%s, %s].', xdt, ydt ) );\n\t}\n\t// Resolve a writable output array view:\n\tview = slice( y, s, strict, true );\n\n\t// Broadcast the input array:\n\tx = broadcast( x, getShape( view, true ) );\n\n\t// Set elements from `x` in `y`:\n\tassign( [ x, view ] );\n\n\t// Return the original output array:\n\treturn y;\n}\n\n\n// EXPORTS //\n\nmodule.exports = sliceAssign;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Assign element values from a broadcasted input ndarray to corresponding elements in an output ndarray view.\n*\n* @module @stdlib/ndarray/base/slice-assign\n*\n* @example\n* var Slice = require( '@stdlib/slice/ctor' );\n* var MultiSlice = require( '@stdlib/slice/multi' );\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndzeros = require( '@stdlib/ndarray/zeros' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var sliceAssign = require( '@stdlib/ndarray/base/slice-assign' );\n*\n* // Define an input array:\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* // Define an output array:\n* var y = ndzeros( [ 2, 3, 2 ], {\n* 'dtype': x.dtype\n* });\n*\n* // Create a slice:\n* var s0 = null;\n* var s1 = new Slice( null, null, -1 );\n* var s2 = new Slice( null, null, -1 );\n* var s = new MultiSlice( s0, s1, s2 );\n* // returns \n*\n* // Perform assignment:\n* var out = sliceAssign( x, y, s, false );\n* // returns \n*\n* var bool = ( out === y );\n* // returns true\n*\n* arr = ndarray2array( y );\n* // returns [ [ [ 6.0, 5.0 ], [ 4.0, 3.0 ], [ 2.0, 1.0 ] ], [ [ 6.0, 5.0 ], [ 4.0, 3.0 ], [ 2.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 args2multislice = require( '@stdlib/slice/base/args2multislice' );\nvar ndims = require( './../../../base/ndims' );\nvar slice = require( './../../../base/slice' );\nvar normalizeIndex = require( './../../../base/normalize-index' );\nvar filled = require( '@stdlib/array/base/filled' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns a view of an input ndarray when sliced along a specified dimension.\n*\n* @param {ndarray} x - input array\n* @param {integer} dim - index of dimension to slice\n* @param {(Slice|integer)} s - slice object or an integer\n* @param {boolean} strict - boolean indicating whether to enforce strict bounds checking\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @throws {TypeError} first argument must be an ndarray having one or more dimensions\n* @throws {RangeError} dimension index exceeds the number of dimensions\n* @throws {RangeError} slice exceeds array bounds\n* @returns {ndarray} ndarray view\n*\n* @example\n* var Slice = require( '@stdlib/slice/ctor' );\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var s = new Slice( null, null, -1 );\n* // returns \n*\n* var y = sliceDimension( x, 0, s, false, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 3, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 5.0, 6.0 ], [ 3.0, 4.0 ], [ 1.0, 2.0 ] ]\n*/\nfunction sliceDimension( x, dim, s, strict, writable ) {\n\tvar args;\n\tvar N;\n\tvar d;\n\n\t// Retrieve array meta data:\n\tN = ndims( x );\n\n\t// Check whether we were provided a zero-dimensional array...\n\tif ( N === 0 ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray having one or more dimensions. Number of dimensions: %d.', N ) );\n\t}\n\t// Normalize the dimension index:\n\td = normalizeIndex( dim, N-1 );\n\tif ( d === -1 ) {\n\t\tthrow new RangeError( format( 'invalid argument. Dimension index exceeds the number of dimensions. Number of dimensions: %d. Value: `%d`.', N, dim ) );\n\t}\n\t// Define a list of MultiSlice constructor arguments:\n\targs = filled( null, N );\n\targs[ d ] = s;\n\n\t// Return a new array view:\n\treturn slice( x, args2multislice( args ), strict, writable );\n}\n\n\n// EXPORTS //\n\nmodule.exports = sliceDimension;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 view of an input ndarray when sliced along a specified dimension.\n*\n* @module @stdlib/ndarray/base/slice-dimension\n*\n* @example\n* var Slice = require( '@stdlib/slice/ctor' );\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var sliceDimension = require( '@stdlib/ndarray/base/slice-dimension' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var s = new Slice( null, null, -1 );\n* // returns \n*\n* var y = sliceDimension( x, 0, s, false, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 3, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 5.0, 6.0 ], [ 3.0, 4.0 ], [ 1.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 args2multislice = require( '@stdlib/slice/base/args2multislice' );\nvar Slice = require( '@stdlib/slice/ctor' );\nvar ndims = require( './../../../base/ndims' );\nvar slice = require( './../../../base/slice' );\nvar normalizeIndex = require( './../../../base/normalize-index' );\nvar filled = require( '@stdlib/array/base/filled' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns a shifted view of an input ndarray along a specified dimension.\n*\n* @param {ndarray} x - input array\n* @param {integer} dim - index of dimension to slice\n* @param {integer} start - starting index (inclusive)\n* @param {boolean} strict - boolean indicating whether to enforce strict bounds checking\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @throws {TypeError} first argument must be an ndarray having one or more dimensions\n* @throws {RangeError} dimension index exceeds the number of dimensions\n* @throws {RangeError} slice exceeds array bounds\n* @returns {ndarray} ndarray view\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = sliceDimensionFrom( x, 0, 1, false, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*/\nfunction sliceDimensionFrom( x, dim, start, strict, writable ) {\n\tvar args;\n\tvar N;\n\tvar d;\n\n\t// Retrieve array meta data:\n\tN = ndims( x );\n\n\t// Check whether we were provided a zero-dimensional array...\n\tif ( N === 0 ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray having one or more dimensions. Number of dimensions: %d.', N ) );\n\t}\n\t// Normalize the dimension index:\n\td = normalizeIndex( dim, N-1 );\n\tif ( d === -1 ) {\n\t\tthrow new RangeError( format( 'invalid argument. Dimension index exceeds the number of dimensions. Number of dimensions: %d. Value: `%d`.', N, dim ) );\n\t}\n\t// Define a list of slice arguments:\n\targs = filled( null, N );\n\targs[ d ] = new Slice( start, null );\n\n\t// Return a new array view:\n\treturn slice( x, args2multislice( args ), strict, writable );\n}\n\n\n// EXPORTS //\n\nmodule.exports = sliceDimensionFrom;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 shifted view of an input ndarray along a specified dimension.\n*\n* @module @stdlib/ndarray/base/slice-dimension-from\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var sliceDimensionFrom = require( '@stdlib/ndarray/base/slice-dimension-from' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = sliceDimensionFrom( x, 0, 1, false, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 3.0, 4.0 ], [ 5.0, 6.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 args2multislice = require( '@stdlib/slice/base/args2multislice' );\nvar Slice = require( '@stdlib/slice/ctor' );\nvar ndims = require( './../../../base/ndims' );\nvar slice = require( './../../../base/slice' );\nvar normalizeIndex = require( './../../../base/normalize-index' );\nvar filled = require( '@stdlib/array/base/filled' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns a truncated view of an input ndarray along a specified dimension.\n*\n* @param {ndarray} x - input array\n* @param {integer} dim - index of dimension to slice\n* @param {integer} stop - ending index (exclusive)\n* @param {boolean} strict - boolean indicating whether to enforce strict bounds checking\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @throws {TypeError} first argument must be an ndarray having one or more dimensions\n* @throws {RangeError} dimension index exceeds the number of dimensions\n* @throws {RangeError} slice exceeds array bounds\n* @returns {ndarray} ndarray view\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = sliceDimensionTo( x, 0, 2, false, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ]\n*/\nfunction sliceDimensionTo( x, dim, stop, strict, writable ) {\n\tvar args;\n\tvar N;\n\tvar d;\n\n\t// Retrieve array meta data:\n\tN = ndims( x );\n\n\t// Check whether we were provided a zero-dimensional array...\n\tif ( N === 0 ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray having one or more dimensions. Number of dimensions: %d.', N ) );\n\t}\n\t// Normalize the dimension index:\n\td = normalizeIndex( dim, N-1 );\n\tif ( d === -1 ) {\n\t\tthrow new RangeError( format( 'invalid argument. Dimension index exceeds the number of dimensions. Number of dimensions: %d. Value: `%d`.', N, dim ) );\n\t}\n\t// Define a list of slice arguments:\n\targs = filled( null, N );\n\targs[ d ] = new Slice( stop );\n\n\t// Return a new array view:\n\treturn slice( x, args2multislice( args ), strict, writable );\n}\n\n\n// EXPORTS //\n\nmodule.exports = sliceDimensionTo;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 truncated view of an input ndarray along a specified dimension.\n*\n* @module @stdlib/ndarray/base/slice-dimension-to\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var sliceDimensionTo = require( '@stdlib/ndarray/base/slice-dimension-to' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = sliceDimensionTo( x, 0, 2, false, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* arr = ndarray2array( 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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 args2multislice = require( '@stdlib/slice/base/args2multislice' );\nvar Slice = require( '@stdlib/slice/ctor' );\nvar slice = require( './../../../base/slice' );\n\n\n// MAIN //\n\n/**\n* Returns a shifted view of an input ndarray.\n*\n* @param {ndarray} x - input array\n* @param {Array} start - starting indices (inclusive)\n* @param {boolean} strict - boolean indicating whether to enforce strict bounds checking\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @throws {RangeError} number of slice dimensions must match the number of array dimensions\n* @throws {RangeError} slice exceeds array bounds\n* @returns {ndarray} ndarray view\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var s = [ 1, null ];\n* var y = sliceFrom( x, s, false, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*/\nfunction sliceFrom( x, start, strict, writable ) {\n\tvar args;\n\tvar s;\n\tvar i;\n\n\targs = [];\n\tfor ( i = 0; i < start.length; i++ ) {\n\t\ts = start[ i ];\n\t\tif ( isNumber( s ) && s !== 0 ) { // note: a start value equal to 0 is equivalent to `null` (i.e., including all elements along a dimension)\n\t\t\targs.push( new Slice( s, null ) );\n\t\t} else {\n\t\t\targs.push( null );\n\t\t}\n\t}\n\treturn slice( x, args2multislice( args ), strict, writable );\n}\n\n\n// EXPORTS //\n\nmodule.exports = sliceFrom;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 shifted view of an input ndarray.\n*\n* @module @stdlib/ndarray/base/slice-from\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var sliceFrom = require( '@stdlib/ndarray/base/slice-from' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var s = [ 1, null ];\n* var y = sliceFrom( x, s, false, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 3.0, 4.0 ], [ 5.0, 6.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 isNumber = require( '@stdlib/assert/is-number' ).isPrimitive;\nvar args2multislice = require( '@stdlib/slice/base/args2multislice' );\nvar Slice = require( '@stdlib/slice/ctor' );\nvar slice = require( './../../../base/slice' );\n\n\n// MAIN //\n\n/**\n* Returns a truncated view of an input ndarray.\n*\n* @param {ndarray} x - input array\n* @param {Array} stop - ending indices (exclusive)\n* @param {boolean} strict - boolean indicating whether to enforce strict bounds checking\n* @param {boolean} writable - boolean indicating whether a returned array should be writable\n* @throws {RangeError} number of slice dimensions must match the number of array dimensions\n* @throws {RangeError} slice exceeds array bounds\n* @returns {ndarray} ndarray view\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var s = [ 2, null ];\n* var y = sliceTo( x, s, false, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ]\n*/\nfunction sliceTo( x, stop, strict, writable ) {\n\tvar args;\n\tvar i;\n\n\targs = [];\n\tfor ( i = 0; i < stop.length; i++ ) {\n\t\tif ( isNumber( stop[ i ] ) ) {\n\t\t\targs.push( new Slice( stop[ i ] ) );\n\t\t} else {\n\t\t\targs.push( null );\n\t\t}\n\t}\n\treturn slice( x, args2multislice( args ), strict, writable );\n}\n\n\n// EXPORTS //\n\nmodule.exports = sliceTo;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 truncated view of an input ndarray.\n*\n* @module @stdlib/ndarray/base/slice-to\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var sliceTo = require( '@stdlib/ndarray/base/slice-to' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var s = [ 2, null ];\n* var y = sliceTo( x, s, false, false );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* arr = ndarray2array( 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) 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 format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Converts subscripts to a linear index.\n*\n* ## Notes\n*\n* - The function accepts the following \"modes\":\n*\n* - **throw**: throw an error when a subscript exceeds array dimensions.\n* - **normalize**: normalize negative subscripts and throw an error when a subscript exceeds array dimensions.\n* - **wrap**: wrap around subscripts exceeding array dimensions using modulo arithmetic.\n* - **clamp**: set subscripts exceeding array dimensions to either `0` (minimum index) or the maximum index along a particular dimension.\n*\n* - When provided fewer modes than dimensions, the function recycles modes using modulo arithmetic.\n*\n* - When provided a stride array containing negative strides, if an `offset` is greater than `0`, the function treats subscripts as mapping to a linear index in an underlying data buffer for the array, thus returning a linear index from the perspective of that buffer. If an `offset` is equal to `0`, the function treats subscripts as mapping to a linear index in an array view, thus returning a linear index from the perspective of that view.\n*\n* ```text\n* Dims: 2x2\n* Buffer: [ 1, 2, 3, 4 ]\n*\n* View = [ a00, a01,\n* a10, a11 ]\n*\n* Strides: 2,1\n* Offset: 0\n*\n* View = [ 1, 2,\n* 3, 4 ]\n*\n* Strides: 2,-1\n* Offset: 1\n*\n* View = [ 2, 1,\n* 4, 3 ]\n*\n* Strides: -2,1\n* Offset: 2\n*\n* View = [ 3, 4,\n* 1, 2 ]\n*\n* Strides: -2,-1\n* Offset: 3\n*\n* View = [ 4, 3,\n* 2, 1 ]\n* ```\n*\n* ```javascript\n* var shape = [ 2, 2 ];\n* var strides = [ -2, 1 ];\n* var offset = 2;\n* var mode = [ 'throw' ];\n*\n* // From the perspective of a view...\n* var idx = sub2ind( shape, strides, 0, 0, 0, mode );\n* // returns 0\n*\n* idx = sub2ind( shape, strides, 0, 0, 1, mode );\n* // returns 1\n*\n* idx = sub2ind( shape, strides, 0, 1, 0, mode );\n* // returns 2\n*\n* idx = sub2ind( shape, strides, 0, 1, 1, mode );\n* // returns 3\n*\n* // From the perspective of an underlying buffer...\n* idx = sub2ind( shape, strides, offset, 0, 0, mode );\n* // returns 2\n*\n* idx = sub2ind( shape, strides, offset, 0, 1, mode );\n* // returns 3\n*\n* idx = sub2ind( shape, strides, offset, 1, 0, mode );\n* // returns 0\n*\n* idx = sub2ind( shape, strides, offset, 1, 1, mode );\n* // returns 1\n* ```\n*\n* In short, from the perspective of a view, view data is always ordered.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - stride array\n* @param {NonNegativeInteger} offset - location of the first indexed value **based** on the stride array\n* @param {...integer} i - subscripts\n* @param {StringArray} mode - specifies how to handle subscripts which exceed array dimensions\n* @throws {RangeError} must provide subscripts which do not exceed array dimensions\n* @returns {NonNegativeInteger} linear index\n*\n* @example\n* var shape = [ 3, 3, 3 ];\n* var strides = [ 9, 3, 1 ];\n* var offset = 0;\n* var mode = [ 'throw' ]\n*\n* var idx = sub2ind( shape, strides, offset, 1, 2, 2, mode );\n* // returns [ 'throw' ]\n*/\nfunction sub2ind() {\n\tvar strides;\n\tvar offset;\n\tvar nmodes;\n\tvar shape;\n\tvar ndims;\n\tvar modes;\n\tvar mode;\n\tvar idx;\n\tvar m;\n\tvar s;\n\tvar j;\n\tvar i;\n\n\tshape = arguments[ 0 ];\n\tstrides = arguments[ 1 ];\n\toffset = arguments[ 2 ];\n\tndims = shape.length;\n\tmodes = arguments[ 3+ndims ]; // last argument\n\tnmodes = modes.length;\n\tidx = offset;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tm = shape[ i ];\n\t\tj = arguments[ i+3 ];\n\t\tmode = modes[ i%nmodes ];\n\t\tif ( mode === 'clamp' ) {\n\t\t\tif ( j < 0 ) {\n\t\t\t\tj = 0;\n\t\t\t} else if ( j >= m ) {\n\t\t\t\tj = m - 1;\n\t\t\t}\n\t\t} else if ( mode === 'wrap' ) {\n\t\t\tif ( j < 0 ) {\n\t\t\t\tj += m; // slight optimization to avoid modulo arithmetic when |j| <= m\n\t\t\t\tif ( j < 0 ) {\n\t\t\t\t\tj %= m;\n\t\t\t\t\tif ( j !== 0 ) {\n\t\t\t\t\t\tj += m;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if ( j >= m ) {\n\t\t\t\tj -= m; // slight optimization to avoid modulo arithmetic when m < j <= 2m\n\t\t\t\tif ( j >= m ) {\n\t\t\t\t\tj %= m;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif ( mode === 'normalize' && j < 0 ) {\n\t\t\t\tj += m;\n\t\t\t}\n\t\t\tif ( j < 0 || j >= m ) {\n\t\t\t\tthrow new RangeError( format( 'invalid argument. Subscripts must not exceed array dimensions. Subscript: `%u`. Value: `%d`.', i, j ) );\n\t\t\t}\n\t\t}\n\t\ts = strides[ i ];\n\n\t\t// Check if array view...\n\t\tif ( s < 0 && offset === 0 ) {\n\t\t\tidx -= j * s; // increments idx\n\t\t} else {\n\t\t\tidx += j * s; // may increment or decrement idx\n\t\t}\n\t}\n\treturn idx;\n}\n\n\n// EXPORTS //\n\nmodule.exports = sub2ind;\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 subscripts to a linear index.\n*\n* @module @stdlib/ndarray/base/sub2ind\n*\n* @example\n* var sub2ind = require( '@stdlib/ndarray/base/sub2ind' );\n*\n* var shape = [ 3, 3, 3 ];\n* var strides = [ 9, 3, 1 ];\n* var offset = 0;\n* var mode = [ 'throw' ];\n*\n* var idx = sub2ind( shape, strides, offset, 1, 2, 2, mode );\n* // returns 17\n*/\n\n// MODULES //\n\nvar sub2ind = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = sub2ind;\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* Recursively converts an ndarray to a generic array.\n*\n* @private\n* @param {Object} obj - array object\n* @param {(ArrayLikeObject|TypedArray|Buffer)} obj.data - data buffer\n* @param {Array} obj.accessors - element accessors\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - array strides\n* @param {NonNegativeInteger} offset - index offset\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @param {NonNegativeInteger} dim - dimension\n* @returns {(Array|Array)} output array\n*/\nfunction recurse( obj, shape, strides, offset, order, dim ) {\n\tvar stride;\n\tvar item;\n\tvar out;\n\tvar n;\n\tvar i;\n\n\tif ( dim >= shape.length ) {\n\t\treturn obj.accessors[ 0 ]( obj.data, offset );\n\t}\n\tout = [];\n\n\tn = shape[ dim ];\n\tstride = strides[ dim ];\n\n\tfor ( i = 0; i < n; i++ ) {\n\t\titem = recurse( obj, shape, strides, offset, order, dim+1 );\n\t\tout.push( item );\n\t\toffset += stride;\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = recurse;\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 arraylike2object = require( '@stdlib/array/base/arraylike2object' );\nvar recurse = require( './recurse.js' );\n\n\n// MAIN //\n\n/**\n* Converts an ndarray buffer to a generic array (which may include nested arrays).\n*\n* @param {(ArrayLikeObject|TypedArray|Buffer)} buffer - data buffer\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - array strides\n* @param {NonNegativeInteger} offset - index offset\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @returns {(EmptyArray|Array|Array)} array (which may include nested arrays)\n*\n* @example\n* var buffer = [ 1, 2, 3, 4 ];\n* var shape = [ 2, 2 ];\n* var order = 'row-major';\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var out = ndarray2array( buffer, shape, strides, offset, order );\n* // returns [ [ 1, 2 ], [ 3, 4 ] ]\n*/\nfunction ndarray2array( buffer, shape, strides, offset, order ) {\n\tvar i;\n\tif ( shape.length === 0 ) {\n\t\treturn [];\n\t}\n\tfor ( i = 0; i < shape.length; i++ ) {\n\t\tif ( shape[ i ] === 0 ) {\n\t\t\treturn [];\n\t\t}\n\t}\n\treturn recurse( arraylike2object( buffer ), shape, strides, offset, order, 0 ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nmodule.exports = ndarray2array;\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 ndarray buffer to a generic array (which may include nested arrays).\n*\n* @module @stdlib/ndarray/base/to-array\n*\n* @example\n* var ndarray2array = require( '@stdlib/ndarray/base/to-array' );\n*\n* var buffer = [ 1, 2, 3, 4 ];\n* var shape = [ 2, 2 ];\n* var order = 'row-major';\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var out = ndarray2array( buffer, shape, strides, offset, order );\n* // returns [ [ 1, 2 ], [ 3, 4 ] ]\n*/\n\n// MODULES //\n\nvar ndarray2array = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = ndarray2array;\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 strides2offset = require( './../../../base/strides2offset' );\nvar getDType = require( './../../../base/dtype' );\nvar getShape = require( './../../../base/shape' );\nvar getStrides = require( './../../../base/strides' );\nvar getOrder = require( './../../../base/order' );\nvar getData = require( './../../../base/data-buffer' );\n\n\n// MAIN //\n\n/**\n* Transpose a matrix (or a stack of matrices).\n*\n* @param {ndarray} x - input array\n* @throws {Error} must provide an array with two or more dimensions\n* @returns {ndarray} ndarray\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var x = array( [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 2, 3 ]\n*\n* var y = transpose( x );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 3, 2 ]\n*\n* var bool = ( x.data === y.data );\n* // returns true\n*\n* bool = ( x.get( 0, 1 ) === y.get( 1, 0 ) );\n* // returns true\n*/\nfunction transpose( x ) {\n\tvar tmp;\n\tvar sh;\n\tvar st;\n\tvar N;\n\n\tsh = getShape( x, true );\n\tN = sh.length;\n\tif ( N < 2 ) {\n\t\tthrow new Error( 'invalid argument. Must provide an ndarray having two or more dimensions.' );\n\t}\n\tst = getStrides( x, true );\n\n\ttmp = sh[ N-2 ];\n\tsh[ N-2 ] = sh[ N-1 ];\n\tsh[ N-1 ] = tmp;\n\n\ttmp = st[ N-2 ];\n\tst[ N-2 ] = st[ N-1 ];\n\tst[ N-1 ] = tmp;\n\n\t// FIXME: handling of offset seems incorrect. Should also handle READ-ONLY arrays.\n\treturn new x.constructor( getDType( x ), getData( x ), sh, st, strides2offset( sh, st ), getOrder( x ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nmodule.exports = transpose;\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* Transpose a matrix (or a stack of matrices).\n*\n* @module @stdlib/ndarray/base/transpose\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n* var transpose = require( '@stdlib/ndarray/base/transpose' );\n*\n* var x = array( [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 2, 3 ]\n*\n* var y = transpose( x );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 3, 2 ]\n*\n* var bool = ( x.data === y.data );\n* // returns true\n*\n* bool = ( x.get( 0, 1 ) === y.get( 1, 0 ) );\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) 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 loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a two-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary2d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary2d( x, y, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar ox1;\n\tvar oy1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t// Compute loop offset increments...\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary2d;\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/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a three-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary3d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary3d( x, y, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary3d;\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/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a four-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary4d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary4d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\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 ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\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 o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\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 = blockedunary4d;\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/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a five-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary5d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary5d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\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 ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\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 o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary5d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a six-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary6d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary6d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary6d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a seven-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary7d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary7d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary7d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in an eight-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary8d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary8d( x, y, fcn ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary8d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a nine-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary9d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary9d( x, y, fcn ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary9d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a ten-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary10d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary10d( x, y, fcn ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary10d;\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 loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a two-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary2d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0 ]\n*/\nfunction blockedunary2d( x, y, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar ox1;\n\tvar oy1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t// Compute loop offset increments...\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary2d;\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/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a three-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary3d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary3d( x, y, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary3d;\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/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a four-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary4d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary4d( x, y, fcn ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\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 ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\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 o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\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 = blockedunary4d;\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/* eslint-disable max-depth */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a five-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary5d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary5d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\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 ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\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 o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary5d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a six-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary6d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary6d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary6d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a seven-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary7d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary7d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary7d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in an eight-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary8d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary8d( x, y, fcn ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary8d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a nine-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary9d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary9d( x, y, fcn ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary9d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a ten-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary10d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction blockedunary10d( x, y, fcn ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary10d;\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* Applies a unary callback to elements in a zero-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0 ] );\n* var ybuf = new Complex64Array( 2 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary0d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 30.0\n*\n* var im = imagf( v );\n* // returns 40.0\n*/\nfunction unary0d( x, y, fcn ) {\n\ty.accessors[ 1 ]( y.data, y.offset, fcn( x.accessors[ 0 ]( x.data, x.offset ) ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary0d;\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* Applies a unary callback to elements in a one-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary1d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary1d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dy0;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\tix += dx0;\n\t\tiy += dy0;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary1d;\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* Applies a unary callback to elements in a two-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary2d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary2d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary2d;\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* Applies a unary callback to elements in a three-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary3d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary3d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary3d;\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* Applies a unary callback to elements in a four-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary4d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary4d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\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 sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary4d;\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* Applies a unary callback to elements in a five-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary5d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary5d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\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 sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary5d;\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/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a six-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary6d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary6d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary6d;\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/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a seven-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary7d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary7d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary7d;\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/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in an eight-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary8d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary8d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary8d;\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/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a nine-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary9d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary9d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary9d;\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/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a ten-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary10d( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary10d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) ); // eslint-disable-line max-len\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary10d;\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 numel = require( './../../../base/numel' );\nvar vind2bind = require( './../../../base/vind2bind' );\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in an n-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Callback} fcn - unary callback\n* @returns {void}\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unarynd( x, y, scale );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unarynd( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar ordx;\n\tvar ordy;\n\tvar len;\n\tvar get;\n\tvar set;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray data buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tset( ybuf, iy, fcn( get( xbuf, ix ) ) );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unarynd;\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* Applies a unary callback to elements in a zero-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n* var ybuf = new Float64Array( 1 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary0d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0 ]\n*/\nfunction unary0d( x, y, fcn ) {\n\ty.data[ y.offset ] = fcn( x.data[ x.offset ] );\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary0d;\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* Applies a unary callback to elements in a one-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary1d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 40.0, 60.0, 80.0 ]\n*/\nfunction unary1d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dy0;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\tix += dx0;\n\t\tiy += dy0;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary1d;\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* Applies a unary callback to elements in a two-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary2d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0 ]\n*/\nfunction unary2d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary2d;\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* Applies a unary callback to elements in a three-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary3d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary3d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary3d;\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* Applies a unary callback to elements in a four-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary4d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary4d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\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 sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary4d;\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* Applies a unary callback to elements in a five-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary5d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary5d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\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 sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary5d;\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/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a six-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary6d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary6d( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary6d;\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/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a seven-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary7d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary7d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary7d;\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/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in an eight-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary8d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary8d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary8d;\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/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a nine-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary9d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary9d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary9d;\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/* eslint-disable max-depth */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in a ten-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary10d( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary10d( x, y, fcn ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary10d;\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 numel = require( './../../../base/numel' );\nvar vind2bind = require( './../../../base/vind2bind' );\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in an n-dimensional input ndarray and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Callback} fcn - unary callback\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unarynd( x, y, scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0 ]\n*/\nfunction unarynd( x, y, fcn ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar ordx;\n\tvar ordy;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray data buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tybuf[ iy ] = fcn( xbuf[ ix ] );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unarynd;\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 iterationOrder = require( './../../../base/iteration-order' );\nvar minmaxViewBufferIndex = require( './../../../base/minmax-view-buffer-index' );\nvar ndarray2object = require( './../../../base/ndarraylike2object' );\nvar blockedaccessorunary2d = require( './2d_blocked_accessors.js' );\nvar blockedaccessorunary3d = require( './3d_blocked_accessors.js' );\nvar blockedaccessorunary4d = require( './4d_blocked_accessors.js' );\nvar blockedaccessorunary5d = require( './5d_blocked_accessors.js' );\nvar blockedaccessorunary6d = require( './6d_blocked_accessors.js' );\nvar blockedaccessorunary7d = require( './7d_blocked_accessors.js' );\nvar blockedaccessorunary8d = require( './8d_blocked_accessors.js' );\nvar blockedaccessorunary9d = require( './9d_blocked_accessors.js' );\nvar blockedaccessorunary10d = require( './10d_blocked_accessors.js' );\nvar blockedunary2d = require( './2d_blocked.js' );\nvar blockedunary3d = require( './3d_blocked.js' );\nvar blockedunary4d = require( './4d_blocked.js' );\nvar blockedunary5d = require( './5d_blocked.js' );\nvar blockedunary6d = require( './6d_blocked.js' );\nvar blockedunary7d = require( './7d_blocked.js' );\nvar blockedunary8d = require( './8d_blocked.js' );\nvar blockedunary9d = require( './9d_blocked.js' );\nvar blockedunary10d = require( './10d_blocked.js' );\nvar accessorunary0d = require( './0d_accessors.js' );\nvar accessorunary1d = require( './1d_accessors.js' );\nvar accessorunary2d = require( './2d_accessors.js' );\nvar accessorunary3d = require( './3d_accessors.js' );\nvar accessorunary4d = require( './4d_accessors.js' );\nvar accessorunary5d = require( './5d_accessors.js' );\nvar accessorunary6d = require( './6d_accessors.js' );\nvar accessorunary7d = require( './7d_accessors.js' );\nvar accessorunary8d = require( './8d_accessors.js' );\nvar accessorunary9d = require( './9d_accessors.js' );\nvar accessorunary10d = require( './10d_accessors.js' );\nvar accessorunarynd = require( './nd_accessors.js' );\nvar unary0d = require( './0d.js' );\nvar unary1d = require( './1d.js' );\nvar unary2d = require( './2d.js' );\nvar unary3d = require( './3d.js' );\nvar unary4d = require( './4d.js' );\nvar unary5d = require( './5d.js' );\nvar unary6d = require( './6d.js' );\nvar unary7d = require( './7d.js' );\nvar unary8d = require( './8d.js' );\nvar unary9d = require( './9d.js' );\nvar unary10d = require( './10d.js' );\nvar unarynd = require( './nd.js' );\n\n\n// VARIABLES //\n\nvar UNARY = [\n\tunary0d,\n\tunary1d,\n\tunary2d,\n\tunary3d,\n\tunary4d,\n\tunary5d,\n\tunary6d,\n\tunary7d,\n\tunary8d,\n\tunary9d,\n\tunary10d\n];\nvar ACCESSOR_UNARY = [\n\taccessorunary0d,\n\taccessorunary1d,\n\taccessorunary2d,\n\taccessorunary3d,\n\taccessorunary4d,\n\taccessorunary5d,\n\taccessorunary6d,\n\taccessorunary7d,\n\taccessorunary8d,\n\taccessorunary9d,\n\taccessorunary10d\n];\nvar BLOCKED_UNARY = [\n\tblockedunary2d, // 0\n\tblockedunary3d,\n\tblockedunary4d,\n\tblockedunary5d,\n\tblockedunary6d,\n\tblockedunary7d,\n\tblockedunary8d,\n\tblockedunary9d,\n\tblockedunary10d // 8\n];\nvar BLOCKED_ACCESSOR_UNARY = [\n\tblockedaccessorunary2d, // 0\n\tblockedaccessorunary3d,\n\tblockedaccessorunary4d,\n\tblockedaccessorunary5d,\n\tblockedaccessorunary6d,\n\tblockedaccessorunary7d,\n\tblockedaccessorunary8d,\n\tblockedaccessorunary9d,\n\tblockedaccessorunary10d // 8\n];\nvar MAX_DIMS = UNARY.length - 1;\n\n\n// MAIN //\n\n/**\n* Applies a unary callback to elements in an input ndarray and assigns results to elements in an output ndarray.\n*\n* ## Notes\n*\n* - Each provided ndarray should be an `object` with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @param {Callback} fcn - unary callback\n* @throws {Error} arrays must have the same number of dimensions\n* @throws {Error} arrays must have the same shape\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary( [ x, y ], scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.0 ]\n*/\nfunction unary( arrays, fcn ) {\n\tvar ndims;\n\tvar xmmv;\n\tvar ymmv;\n\tvar shx;\n\tvar shy;\n\tvar iox;\n\tvar ioy;\n\tvar len;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ns;\n\tvar x;\n\tvar y;\n\tvar d;\n\tvar i;\n\n\t// Unpack the ndarrays and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\ty = ndarray2object( arrays[ 1 ] );\n\n\t// Verify that the input and output arrays have the same number of dimensions...\n\tshx = x.shape;\n\tshy = y.shape;\n\tndims = shx.length;\n\tif ( ndims !== shy.length ) {\n\t\tthrow new Error( 'invalid arguments. Arrays must have the same number of dimensions (i.e., same rank). ndims(x) == '+ndims+'. ndims(y) == '+shy.length+'.' );\n\t}\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ ndims ]( x, y, fcn );\n\t\t}\n\t\treturn UNARY[ ndims ]( x, y, fcn );\n\t}\n\t// Verify that the input and output arrays have the same dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = shx[ i ];\n\t\tif ( d !== shy[ i ] ) {\n\t\t\tthrow new Error( 'invalid arguments. Arrays must have the same shape.' );\n\t\t}\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= d;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( d === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided empty ndarrays...\n\tif ( len === 0 ) {\n\t\treturn;\n\t}\n\t// Determine whether the ndarrays are one-dimensional and thus readily translate to one-dimensional strided arrays...\n\tif ( ndims === 1 ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ ndims ]( x, y, fcn );\n\t\t}\n\t\treturn UNARY[ ndims ]( x, y, fcn );\n\t}\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Determine whether the ndarray has only **one** non-singleton dimension (e.g., ndims=4, shape=[10,1,1,1]) so that we can treat the ndarrays as being equivalent to one-dimensional strided arrays...\n\tif ( ns === ndims-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( shx[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tx.shape = [ shx[i] ];\n\t\ty.shape = x.shape;\n\t\tx.strides = [ sx[i] ];\n\t\ty.strides = [ sy[i] ];\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ 1 ]( x, y, fcn );\n\t\t}\n\t\treturn UNARY[ 1 ]( x, y, fcn );\n\t}\n\tiox = iterationOrder( sx ); // +/-1\n\tioy = iterationOrder( sy ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tif ( iox !== 0 && ioy !== 0 && x.order === y.order ) {\n\t\t// Determine the minimum and maximum linear indices which are accessible by the array views:\n\t\txmmv = minmaxViewBufferIndex( shx, sx, x.offset );\n\t\tymmv = minmaxViewBufferIndex( shy, sy, y.offset );\n\n\t\t// Determine whether we can ignore shape (and strides) and treat the ndarrays as linear one-dimensional strided arrays...\n\t\tif ( len === ( xmmv[1]-xmmv[0]+1 ) && len === ( ymmv[1]-ymmv[0]+1 ) ) {\n\t\t\t// Note: the above is equivalent to @stdlib/ndarray/base/assert/is-contiguous, but in-lined so we can retain computed values...\n\t\t\tif ( iox === 1 ) {\n\t\t\t\tox = xmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\tox = xmmv[ 1 ];\n\t\t\t}\n\t\t\tif ( ioy === 1 ) {\n\t\t\t\toy = ymmv[ 0 ];\n\t\t\t} else {\n\t\t\t\toy = ymmv[ 1 ];\n\t\t\t}\n\t\t\tx.shape = [ len ];\n\t\t\ty.shape = x.shape;\n\t\t\tx.strides = [ iox ];\n\t\t\ty.strides = [ ioy ];\n\t\t\tx.offset = ox;\n\t\t\ty.offset = oy;\n\t\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_UNARY[ 1 ]( x, y, fcn );\n\t\t\t}\n\t\t\treturn UNARY[ 1 ]( x, y, fcn );\n\t\t}\n\t\t// At least one ndarray is non-contiguous, so we cannot directly use one-dimensional array functionality...\n\n\t\t// Determine whether we can use simple nested loops...\n\t\tif ( ndims <= MAX_DIMS ) {\n\t\t\t// So long as iteration for each respective array always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_UNARY[ ndims ]( x, y, fcn );\n\t\t\t}\n\t\t\treturn UNARY[ ndims ]( x, y, fcn );\n\t\t}\n\t\t// Fall-through to blocked iteration...\n\t}\n\t// At this point, we're either dealing with non-contiguous n-dimensional arrays, high dimensional n-dimensional arrays, and/or arrays having differing memory layouts, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_UNARY[ ndims-2 ]( x, y, fcn );\n\t\t}\n\t\treturn BLOCKED_UNARY[ ndims-2 ]( x, y, fcn );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\treturn accessorunarynd( x, y, fcn );\n\t}\n\tunarynd( x, y, fcn );\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary;\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* Apply a unary callback to elements in an input ndarray and assign results to elements in an output ndarray.\n*\n* @module @stdlib/ndarray/base/unary\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var unary = require( '@stdlib/ndarray/base/unary' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary( [ x, y ], scale );\n*\n* console.log( y.data );\n* // => [ 20.0, 30.0, 60.0, 70.0, 100.0, 110.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/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a two-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary2d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary2d( x, y, fcn, clbk, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar ox1;\n\tvar oy1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t// Compute loop offset increments...\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t\ti += 1;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary2d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a three-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary3d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary3d( x, y, fcn, clbk, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary3d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a four-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary4d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary4d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\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 ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\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 o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\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 = blockedunary4d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a five-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary5d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary5d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\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 ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\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 o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary5d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a six-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary6d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary6d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary6d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a seven-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\n* var Complex64Array = require( '@stdlib/array/complex64' );\n* var Complex64 = require( '@stdlib/complex/float32' );\n* var real = require( '@stdlib/complex/real' );\n* var imag = require( '@stdlib/complex/imag' );\n*\n* function scale( z ) {\n* return new Complex64( real(z)*10.0, imag(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary7d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = real( v );\n* // returns 10.0\n*\n* var im = imag( v );\n* // returns 20.0\n*/\nfunction blockedunary7d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary7d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from an eight-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary8d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary8d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary8d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a nine-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary9d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary9d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary9d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a ten-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* blockedunary10d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction blockedunary10d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Cache accessors:\n\tget = x.accessors[0];\n\tset = y.accessors[1];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary10d;\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/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a two-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary2d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0 ]\n*/\nfunction blockedunary2d( x, y, fcn, clbk, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar ox1;\n\tvar oy1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\tif ( j1 < bsize ) {\n\t\t\ts1 = j1;\n\t\t\tj1 = 0;\n\t\t} else {\n\t\t\ts1 = bsize;\n\t\t\tj1 -= bsize;\n\t\t}\n\t\tox1 = ox + ( j1*sx[1] );\n\t\toy1 = oy + ( j1*sy[1] );\n\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\tif ( j0 < bsize ) {\n\t\t\t\ts0 = j0;\n\t\t\t\tj0 = 0;\n\t\t\t} else {\n\t\t\t\ts0 = bsize;\n\t\t\t\tj0 -= bsize;\n\t\t\t}\n\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t// Compute loop offset increments...\n\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t// Iterate over the ndarray dimensions...\n\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t\ti += 1;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary2d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a three-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary3d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction blockedunary3d( x, y, fcn, clbk, thisArg ) {\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar ox1;\n\tvar ox2;\n\tvar oy1;\n\tvar oy2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\tif ( j2 < bsize ) {\n\t\t\ts2 = j2;\n\t\t\tj2 = 0;\n\t\t} else {\n\t\t\ts2 = bsize;\n\t\t\tj2 -= bsize;\n\t\t}\n\t\tox2 = ox + ( j2*sx[2] );\n\t\toy2 = oy + ( j2*sy[2] );\n\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\tif ( j1 < bsize ) {\n\t\t\t\ts1 = j1;\n\t\t\t\tj1 = 0;\n\t\t\t} else {\n\t\t\t\ts1 = bsize;\n\t\t\t\tj1 -= bsize;\n\t\t\t}\n\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\ts0 = j0;\n\t\t\t\t\tj0 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts0 = bsize;\n\t\t\t\t\tj0 -= bsize;\n\t\t\t\t}\n\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t// Compute loop offset increments...\n\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary3d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a four-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary4d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction blockedunary4d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\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 ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\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 o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\tif ( j3 < bsize ) {\n\t\t\ts3 = j3;\n\t\t\tj3 = 0;\n\t\t} else {\n\t\t\ts3 = bsize;\n\t\t\tj3 -= bsize;\n\t\t}\n\t\tox3 = ox + ( j3*sx[3] );\n\t\toy3 = oy + ( j3*sy[3] );\n\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\tif ( j2 < bsize ) {\n\t\t\t\ts2 = j2;\n\t\t\t\tj2 = 0;\n\t\t\t} else {\n\t\t\t\ts2 = bsize;\n\t\t\t\tj2 -= bsize;\n\t\t\t}\n\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\ts1 = j1;\n\t\t\t\t\tj1 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts1 = bsize;\n\t\t\t\t\tj1 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\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 = blockedunary4d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a five-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary5d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction blockedunary5d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\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 ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\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 o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\tif ( j4 < bsize ) {\n\t\t\ts4 = j4;\n\t\t\tj4 = 0;\n\t\t} else {\n\t\t\ts4 = bsize;\n\t\t\tj4 -= bsize;\n\t\t}\n\t\tox4 = ox + ( j4*sx[4] );\n\t\toy4 = oy + ( j4*sy[4] );\n\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\tif ( j3 < bsize ) {\n\t\t\t\ts3 = j3;\n\t\t\t\tj3 = 0;\n\t\t\t} else {\n\t\t\t\ts3 = bsize;\n\t\t\t\tj3 -= bsize;\n\t\t\t}\n\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\ts2 = j2;\n\t\t\t\t\tj2 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts2 = bsize;\n\t\t\t\t\tj2 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary5d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a six-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary6d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction blockedunary6d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\tif ( j5 < bsize ) {\n\t\t\ts5 = j5;\n\t\t\tj5 = 0;\n\t\t} else {\n\t\t\ts5 = bsize;\n\t\t\tj5 -= bsize;\n\t\t}\n\t\tox5 = ox + ( j5*sx[5] );\n\t\toy5 = oy + ( j5*sy[5] );\n\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\tif ( j4 < bsize ) {\n\t\t\t\ts4 = j4;\n\t\t\t\tj4 = 0;\n\t\t\t} else {\n\t\t\t\ts4 = bsize;\n\t\t\t\tj4 -= bsize;\n\t\t\t}\n\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\ts3 = j3;\n\t\t\t\t\tj3 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts3 = bsize;\n\t\t\t\t\tj3 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary6d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a seven-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary7d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction blockedunary7d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\tif ( j6 < bsize ) {\n\t\t\ts6 = j6;\n\t\t\tj6 = 0;\n\t\t} else {\n\t\t\ts6 = bsize;\n\t\t\tj6 -= bsize;\n\t\t}\n\t\tox6 = ox + ( j6*sx[6] );\n\t\toy6 = oy + ( j6*sy[6] );\n\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\tif ( j5 < bsize ) {\n\t\t\t\ts5 = j5;\n\t\t\t\tj5 = 0;\n\t\t\t} else {\n\t\t\t\ts5 = bsize;\n\t\t\t\tj5 -= bsize;\n\t\t\t}\n\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\ts4 = j4;\n\t\t\t\t\tj4 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts4 = bsize;\n\t\t\t\t\tj4 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary7d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from an eight-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary8d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction blockedunary8d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\tif ( j7 < bsize ) {\n\t\t\ts7 = j7;\n\t\t\tj7 = 0;\n\t\t} else {\n\t\t\ts7 = bsize;\n\t\t\tj7 -= bsize;\n\t\t}\n\t\tox7 = ox + ( j7*sx[7] );\n\t\toy7 = oy + ( j7*sy[7] );\n\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\tif ( j6 < bsize ) {\n\t\t\t\ts6 = j6;\n\t\t\t\tj6 = 0;\n\t\t\t} else {\n\t\t\t\ts6 = bsize;\n\t\t\t\tj6 -= bsize;\n\t\t\t}\n\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\ts5 = j5;\n\t\t\t\t\tj5 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts5 = bsize;\n\t\t\t\t\tj5 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary8d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a nine-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary9d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction blockedunary9d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\tif ( j8 < bsize ) {\n\t\t\ts8 = j8;\n\t\t\tj8 = 0;\n\t\t} else {\n\t\t\ts8 = bsize;\n\t\t\tj8 -= bsize;\n\t\t}\n\t\tox8 = ox + ( j8*sx[8] );\n\t\toy8 = oy + ( j8*sy[8] );\n\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\tif ( j7 < bsize ) {\n\t\t\t\ts7 = j7;\n\t\t\t\tj7 = 0;\n\t\t\t} else {\n\t\t\t\ts7 = bsize;\n\t\t\t\tj7 -= bsize;\n\t\t\t}\n\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\ts6 = j6;\n\t\t\t\t\tj6 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts6 = bsize;\n\t\t\t\t\tj6 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary9d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MODULES //\n\nvar loopOrder = require( './../../../base/unary-loop-interchange-order' );\nvar blockSize = require( './../../../base/unary-tiling-block-size' );\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a ten-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray via loop blocking.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* blockedunary10d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction blockedunary10d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar ox1;\n\tvar ox2;\n\tvar ox3;\n\tvar ox4;\n\tvar ox5;\n\tvar ox6;\n\tvar ox7;\n\tvar ox8;\n\tvar ox9;\n\tvar oy1;\n\tvar oy2;\n\tvar oy3;\n\tvar oy4;\n\tvar oy5;\n\tvar oy6;\n\tvar oy7;\n\tvar oy8;\n\tvar oy9;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar s6;\n\tvar s7;\n\tvar s8;\n\tvar s9;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar j3;\n\tvar j4;\n\tvar j5;\n\tvar j6;\n\tvar j7;\n\tvar j8;\n\tvar j9;\n\tvar o;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( x.shape, x.strides, y.strides );\n\tsh = o.sh;\n\tsx = o.sx;\n\tsy = o.sy;\n\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype, y.dtype );\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays...\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache offset increments for the innermost loop...\n\tdx0 = sx[0];\n\tdy0 = sy[0];\n\n\t// Iterate over blocks...\n\ti = 0;\n\tfor ( j9 = sh[9]; j9 > 0; ) {\n\t\tif ( j9 < bsize ) {\n\t\t\ts9 = j9;\n\t\t\tj9 = 0;\n\t\t} else {\n\t\t\ts9 = bsize;\n\t\t\tj9 -= bsize;\n\t\t}\n\t\tox9 = ox + ( j9*sx[9] );\n\t\toy9 = oy + ( j9*sy[9] );\n\t\tfor ( j8 = sh[8]; j8 > 0; ) {\n\t\t\tif ( j8 < bsize ) {\n\t\t\t\ts8 = j8;\n\t\t\t\tj8 = 0;\n\t\t\t} else {\n\t\t\t\ts8 = bsize;\n\t\t\t\tj8 -= bsize;\n\t\t\t}\n\t\t\tdx9 = sx[9] - ( s8*sx[8] );\n\t\t\tdy9 = sy[9] - ( s8*sy[8] );\n\t\t\tox8 = ox9 + ( j8*sx[8] );\n\t\t\toy8 = oy9 + ( j8*sy[8] );\n\t\t\tfor ( j7 = sh[7]; j7 > 0; ) {\n\t\t\t\tif ( j7 < bsize ) {\n\t\t\t\t\ts7 = j7;\n\t\t\t\t\tj7 = 0;\n\t\t\t\t} else {\n\t\t\t\t\ts7 = bsize;\n\t\t\t\t\tj7 -= bsize;\n\t\t\t\t}\n\t\t\t\tdx8 = sx[8] - ( s7*sx[7] );\n\t\t\t\tdy8 = sy[8] - ( s7*sy[7] );\n\t\t\t\tox7 = ox8 + ( j7*sx[7] );\n\t\t\t\toy7 = oy8 + ( j7*sy[7] );\n\t\t\t\tfor ( j6 = sh[6]; j6 > 0; ) {\n\t\t\t\t\tif ( j6 < bsize ) {\n\t\t\t\t\t\ts6 = j6;\n\t\t\t\t\t\tj6 = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts6 = bsize;\n\t\t\t\t\t\tj6 -= bsize;\n\t\t\t\t\t}\n\t\t\t\t\tdx7 = sx[7] - ( s6*sx[6] );\n\t\t\t\t\tdy7 = sy[7] - ( s6*sy[6] );\n\t\t\t\t\tox6 = ox7 + ( j6*sx[6] );\n\t\t\t\t\toy6 = oy7 + ( j6*sy[6] );\n\t\t\t\t\tfor ( j5 = sh[5]; j5 > 0; ) {\n\t\t\t\t\t\tif ( j5 < bsize ) {\n\t\t\t\t\t\t\ts5 = j5;\n\t\t\t\t\t\t\tj5 = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts5 = bsize;\n\t\t\t\t\t\t\tj5 -= bsize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdx6 = sx[6] - ( s5*sx[5] );\n\t\t\t\t\t\tdy6 = sy[6] - ( s5*sy[5] );\n\t\t\t\t\t\tox5 = ox6 + ( j5*sx[5] );\n\t\t\t\t\t\toy5 = oy6 + ( j5*sy[5] );\n\t\t\t\t\t\tfor ( j4 = sh[4]; j4 > 0; ) {\n\t\t\t\t\t\t\tif ( j4 < bsize ) {\n\t\t\t\t\t\t\t\ts4 = j4;\n\t\t\t\t\t\t\t\tj4 = 0;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ts4 = bsize;\n\t\t\t\t\t\t\t\tj4 -= bsize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdx5 = sx[5] - ( s4*sx[4] );\n\t\t\t\t\t\t\tdy5 = sy[5] - ( s4*sy[4] );\n\t\t\t\t\t\t\tox4 = ox5 + ( j4*sx[4] );\n\t\t\t\t\t\t\toy4 = oy5 + ( j4*sy[4] );\n\t\t\t\t\t\t\tfor ( j3 = sh[3]; j3 > 0; ) {\n\t\t\t\t\t\t\t\tif ( j3 < bsize ) {\n\t\t\t\t\t\t\t\t\ts3 = j3;\n\t\t\t\t\t\t\t\t\tj3 = 0;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\ts3 = bsize;\n\t\t\t\t\t\t\t\t\tj3 -= bsize;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdx4 = sx[4] - ( s3*sx[3] );\n\t\t\t\t\t\t\t\tdy4 = sy[4] - ( s3*sy[3] );\n\t\t\t\t\t\t\t\tox3 = ox4 + ( j3*sx[3] );\n\t\t\t\t\t\t\t\toy3 = oy4 + ( j3*sy[3] );\n\t\t\t\t\t\t\t\tfor ( j2 = sh[2]; j2 > 0; ) {\n\t\t\t\t\t\t\t\t\tif ( j2 < bsize ) {\n\t\t\t\t\t\t\t\t\t\ts2 = j2;\n\t\t\t\t\t\t\t\t\t\tj2 = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ts2 = bsize;\n\t\t\t\t\t\t\t\t\t\tj2 -= bsize;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdx3 = sx[3] - ( s2*sx[2] );\n\t\t\t\t\t\t\t\t\tdy3 = sy[3] - ( s2*sy[2] );\n\t\t\t\t\t\t\t\t\tox2 = ox3 + ( j2*sx[2] );\n\t\t\t\t\t\t\t\t\toy2 = oy3 + ( j2*sy[2] );\n\t\t\t\t\t\t\t\t\tfor ( j1 = sh[1]; j1 > 0; ) {\n\t\t\t\t\t\t\t\t\t\tif ( j1 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\ts1 = j1;\n\t\t\t\t\t\t\t\t\t\t\tj1 = 0;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\ts1 = bsize;\n\t\t\t\t\t\t\t\t\t\t\tj1 -= bsize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdx2 = sx[2] - ( s1*sx[1] );\n\t\t\t\t\t\t\t\t\t\tdy2 = sy[2] - ( s1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tox1 = ox2 + ( j1*sx[1] );\n\t\t\t\t\t\t\t\t\t\toy1 = oy2 + ( j1*sy[1] );\n\t\t\t\t\t\t\t\t\t\tfor ( j0 = sh[0]; j0 > 0; ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( j0 < bsize ) {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = j0;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 = 0;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\ts0 = bsize;\n\t\t\t\t\t\t\t\t\t\t\t\tj0 -= bsize;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Compute index offsets for the first input and output ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tix = ox1 + ( j0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tiy = oy1 + ( j0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Compute loop offset increments...\n\t\t\t\t\t\t\t\t\t\t\tdx1 = sx[1] - ( s0*sx[0] );\n\t\t\t\t\t\t\t\t\t\t\tdy1 = sy[1] - ( s0*sy[0] );\n\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the ndarray dimensions...\n\t\t\t\t\t\t\t\t\t\t\tfor ( i9 = 0; i9 < s9; i9++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tfor ( i8 = 0; i8 < s8; i8++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i7 = 0; i7 < s7; i7++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i6 = 0; i6 < s6; i6++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i5 = 0; i5 < s5; i5++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i4 = 0; i4 < s4; i4++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i3 = 0; i3 < s3; i3++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < s2; i2++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < s1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < s0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy6;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy7;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tix += dx8;\n\t\t\t\t\t\t\t\t\t\t\t\t\tiy += dy8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tix += dx9;\n\t\t\t\t\t\t\t\t\t\t\t\tiy += dy9;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\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}\n}\n\n\n// EXPORTS //\n\nmodule.exports = blockedunary10d;\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* Applies a unary function to each element retrieved from a zero-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0 ] );\n* var ybuf = new Complex64Array( 2 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary0d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 30.0\n*\n* var im = imagf( v );\n* // returns 40.0\n*/\nfunction unary0d( x, y, fcn, clbk, thisArg ) {\n\tvar ox = x.offset;\n\tvar oy = y.offset;\n\tvar v = clbk.call( thisArg, x.accessors[ 0 ]( x.data, ox ), 0, [ ox, oy ], [ x, y ] ); // eslint-disable-line max-len\n\tif ( v !== void 0 ) {\n\t\ty.accessors[ 1 ]( y.data, oy, fcn( v ) );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary0d;\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* Applies a unary function to each element retrieved from a one-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 1 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary1d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary1d( x, y, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dy0;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\tif ( v !== void 0 ) {\n\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t}\n\t\tix += dx0;\n\t\tiy += dy0;\n\t\ti += 1;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary1d;\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* Applies a unary function to each element retrieved from a two-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary2d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary2d( x, y, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\tif ( v !== void 0 ) {\n\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t}\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t\ti += 1;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary2d;\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/* eslint-disable max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a three-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary3d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary3d( x, y, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t\ti += 1;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary3d;\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/* eslint-disable max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a four-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary4d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary4d( x, y, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\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 sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t\ti += 1;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary4d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a five-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary5d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary5d( x, y, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\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 sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\ti += 1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary5d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a six-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary6d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary6d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary6d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a seven-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\n* var Complex64Array = require( '@stdlib/array/complex64' );\n* var Complex64 = require( '@stdlib/complex/float32' );\n* var real = require( '@stdlib/complex/real' );\n* var imag = require( '@stdlib/complex/imag' );\n*\n* function scale( z ) {\n* return new Complex64( real(z)*10.0, imag(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary7d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = real( v );\n* // returns 10.0\n*\n* var im = imag( v );\n* // returns 20.0\n*/\nfunction unary7d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary7d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from an eight-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary8d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary8d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary8d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a nine-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary9d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary9d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary9d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a ten-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n* var sy = [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unary10d( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unary10d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar get;\n\tvar set;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary10d;\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 numel = require( './../../../base/numel' );\nvar vind2bind = require( './../../../base/vind2bind' );\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from an n-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} x.accessors - data buffer accessors\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Array} y.accessors - data buffer accessors\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var cidentityf = require( '@stdlib/math/base/special/cidentityf' );\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* function scale( z ) {\n* return new Complex64( realf(z)*10.0, imagf(z)*10.0 );\n* }\n*\n* // Create data buffers:\n* var xbuf = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Complex64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 2, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 0;\n* var oy = 0;\n*\n* // Define getters and setters:\n* function getter( buf, idx ) {\n* return buf.get( idx );\n* }\n*\n* function setter( buf, idx, value ) {\n* buf.set( value, idx );\n* }\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'complex64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n* var y = {\n* 'dtype': 'complex64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major',\n* 'accessors': [ getter, setter ]\n* };\n*\n* // Apply the unary function:\n* unarynd( x, y, scale, cidentityf );\n*\n* var v = y.data.get( 0 );\n*\n* var re = realf( v );\n* // returns 10.0\n*\n* var im = imagf( v );\n* // returns 20.0\n*/\nfunction unarynd( x, y, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar ordx;\n\tvar ordy;\n\tvar len;\n\tvar get;\n\tvar set;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar v;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray data buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\n\t// Cache accessors:\n\tget = x.accessors[ 0 ];\n\tset = y.accessors[ 1 ];\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tv = clbk.call( thisArg, get( xbuf, ix ), i, [ ix, iy ], [ x, y ] );\n\t\tif ( v !== void 0 ) {\n\t\t\tset( ybuf, iy, fcn( v ) );\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unarynd;\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* Applies a unary function to each element retrieved from a zero-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0 ] );\n* var ybuf = new Float64Array( 1 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [];\n*\n* // Define the array strides:\n* var sx = [ 0 ];\n* var sy = [ 0 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary0d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0 ]\n*/\nfunction unary0d( x, y, fcn, clbk, thisArg ) {\n\tvar ox = x.offset;\n\tvar oy = y.offset;\n\tvar v = clbk.call( thisArg, x.data[ ox ], 0, [ ox, oy ], [ x, y ] );\n\tif ( v !== void 0 ) {\n\t\ty.data[ oy ] = fcn( v );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary0d;\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* Applies a unary function to each element retrieved from a one-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 4 ];\n*\n* // Define the array strides:\n* var sx = [ 2 ];\n* var sy = [ 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary1d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40, 80, 120, 160 ]\n*/\nfunction unary1d( x, y, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dy0;\n\tvar S0;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables: dimensions and loop offset (pointer) increments...\n\tS0 = x.shape[ 0 ];\n\tdx0 = x.strides[ 0 ];\n\tdy0 = y.strides[ 0 ];\n\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\tif ( v !== void 0 ) {\n\t\t\tybuf[ iy ] = fcn( v );\n\t\t}\n\t\tix += dx0;\n\t\tiy += dy0;\n\t\ti += 1;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary1d;\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* Applies a unary function to each element retrieved from a two-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary2d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0 ]\n*/\nfunction unary2d( x, y, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dy0;\n\tvar dy1;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 1 ];\n\t\tS1 = sh[ 0 ];\n\t\tdx0 = sx[ 1 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 1 ];\n\t\tdy1 = sy[ 0 ] - ( S0*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\tif ( v !== void 0 ) {\n\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t}\n\t\t\tix += dx0;\n\t\t\tiy += dy0;\n\t\t\ti += 1;\n\t\t}\n\t\tix += dx1;\n\t\tiy += dy1;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary2d;\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* Applies a unary function to each element retrieved from a three-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary3d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction unary3d( x, y, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 2 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 0 ];\n\t\tdx0 = sx[ 2 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[2] );\n\t\tdx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 2 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[2] );\n\t\tdy2 = sy[ 0 ] - ( S1*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t}\n\t\t\t\tix += dx0;\n\t\t\t\tiy += dy0;\n\t\t\t\ti += 1;\n\t\t\t}\n\t\t\tix += dx1;\n\t\t\tiy += dy1;\n\t\t}\n\t\tix += dx2;\n\t\tiy += dy2;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary3d;\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/* eslint-disable max-len */\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a four-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 4, 1 ];\n* var sy = [ 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary4d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction unary4d( x, y, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\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 sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 3 ];\n\t\tS1 = sh[ 2 ];\n\t\tS2 = sh[ 1 ];\n\t\tS3 = sh[ 0 ];\n\t\tdx0 = sx[ 3 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 2 ] - ( S0*sx[3] );\n\t\tdx2 = sx[ 1 ] - ( S1*sx[2] );\n\t\tdx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 3 ];\n\t\tdy1 = sy[ 2 ] - ( S0*sy[3] );\n\t\tdy2 = sy[ 1 ] - ( S1*sy[2] );\n\t\tdy3 = sy[ 0 ] - ( S2*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t}\n\t\t\t\t\tix += dx0;\n\t\t\t\t\tiy += dy0;\n\t\t\t\t\ti += 1;\n\t\t\t\t}\n\t\t\t\tix += dx1;\n\t\t\t\tiy += dy1;\n\t\t\t}\n\t\t\tix += dx2;\n\t\t\tiy += dy2;\n\t\t}\n\t\tix += dx3;\n\t\tiy += dy3;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary4d;\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/* eslint-disable max-depth, max-len */\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a five-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary5d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction unary5d( x, y, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\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 sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 4 ];\n\t\tS1 = sh[ 3 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 1 ];\n\t\tS4 = sh[ 0 ];\n\t\tdx0 = sx[ 4 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 3 ] - ( S0*sx[4] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[3] );\n\t\tdx3 = sx[ 1 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 4 ];\n\t\tdy1 = sy[ 3 ] - ( S0*sy[4] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[3] );\n\t\tdy3 = sy[ 1 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 0 ] - ( S3*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\ti += 1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx1;\n\t\t\t\t\tiy += dy1;\n\t\t\t\t}\n\t\t\t\tix += dx2;\n\t\t\t\tiy += dy2;\n\t\t\t}\n\t\t\tix += dx3;\n\t\t\tiy += dy3;\n\t\t}\n\t\tix += dx4;\n\t\tiy += dy4;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary5d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a six-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary6d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction unary6d( x, y, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 5 ];\n\t\tS1 = sh[ 4 ];\n\t\tS2 = sh[ 3 ];\n\t\tS3 = sh[ 2 ];\n\t\tS4 = sh[ 1 ];\n\t\tS5 = sh[ 0 ];\n\t\tdx0 = sx[ 5 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 4 ] - ( S0*sx[5] );\n\t\tdx2 = sx[ 3 ] - ( S1*sx[4] );\n\t\tdx3 = sx[ 2 ] - ( S2*sx[3] );\n\t\tdx4 = sx[ 1 ] - ( S3*sx[2] );\n\t\tdx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 5 ];\n\t\tdy1 = sy[ 4 ] - ( S0*sy[5] );\n\t\tdy2 = sy[ 3 ] - ( S1*sy[4] );\n\t\tdy3 = sy[ 2 ] - ( S2*sy[3] );\n\t\tdy4 = sy[ 1 ] - ( S3*sy[2] );\n\t\tdy5 = sy[ 0 ] - ( S4*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx2;\n\t\t\t\t\tiy += dy2;\n\t\t\t\t}\n\t\t\t\tix += dx3;\n\t\t\t\tiy += dy3;\n\t\t\t}\n\t\t\tix += dx4;\n\t\t\tiy += dy4;\n\t\t}\n\t\tix += dx5;\n\t\tiy += dy5;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary6d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a seven-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary7d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction unary7d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] - ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 6 ];\n\t\tdy1 = sy[ 5 ] - ( S0*sy[6] );\n\t\tdy2 = sy[ 4 ] - ( S1*sy[5] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[4] );\n\t\tdy4 = sy[ 2 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 1 ] - ( S4*sy[2] );\n\t\tdy6 = sy[ 0 ] - ( S5*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t\tiy += dy3;\n\t\t\t\t}\n\t\t\t\tix += dx4;\n\t\t\t\tiy += dy4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t\tiy += dy5;\n\t\t}\n\t\tix += dx6;\n\t\tiy += dy6;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary7d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from an eight-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary8d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction unary8d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 7 ];\n\t\tS1 = sh[ 6 ];\n\t\tS2 = sh[ 5 ];\n\t\tS3 = sh[ 4 ];\n\t\tS4 = sh[ 3 ];\n\t\tS5 = sh[ 2 ];\n\t\tS6 = sh[ 1 ];\n\t\tS7 = sh[ 0 ];\n\t\tdx0 = sx[ 7 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 6 ] - ( S0*sx[7] );\n\t\tdx2 = sx[ 5 ] - ( S1*sx[6] );\n\t\tdx3 = sx[ 4 ] - ( S2*sx[5] );\n\t\tdx4 = sx[ 3 ] - ( S3*sx[4] );\n\t\tdx5 = sx[ 2 ] - ( S4*sx[3] );\n\t\tdx6 = sx[ 1 ] - ( S5*sx[2] );\n\t\tdx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 7 ];\n\t\tdy1 = sy[ 6 ] - ( S0*sy[7] );\n\t\tdy2 = sy[ 5 ] - ( S1*sy[6] );\n\t\tdy3 = sy[ 4 ] - ( S2*sy[5] );\n\t\tdy4 = sy[ 3 ] - ( S3*sy[4] );\n\t\tdy5 = sy[ 2 ] - ( S4*sy[3] );\n\t\tdy6 = sy[ 1 ] - ( S5*sy[2] );\n\t\tdy7 = sy[ 0 ] - ( S6*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx4;\n\t\t\t\t\tiy += dy4;\n\t\t\t\t}\n\t\t\t\tix += dx5;\n\t\t\t\tiy += dy5;\n\t\t\t}\n\t\t\tix += dx6;\n\t\t\tiy += dy6;\n\t\t}\n\t\tix += dx7;\n\t\tiy += dy7;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary8d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a nine-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary9d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction unary9d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 8 ];\n\t\tS1 = sh[ 7 ];\n\t\tS2 = sh[ 6 ];\n\t\tS3 = sh[ 5 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 3 ];\n\t\tS6 = sh[ 2 ];\n\t\tS7 = sh[ 1 ];\n\t\tS8 = sh[ 0 ];\n\t\tdx0 = sx[ 8 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 7 ] - ( S0*sx[8] );\n\t\tdx2 = sx[ 6 ] - ( S1*sx[7] );\n\t\tdx3 = sx[ 5 ] - ( S2*sx[6] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[5] );\n\t\tdx5 = sx[ 3 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 2 ] - ( S5*sx[3] );\n\t\tdx7 = sx[ 1 ] - ( S6*sx[2] );\n\t\tdx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 8 ];\n\t\tdy1 = sy[ 7 ] - ( S0*sy[8] );\n\t\tdy2 = sy[ 6 ] - ( S1*sy[7] );\n\t\tdy3 = sy[ 5 ] - ( S2*sy[6] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[5] );\n\t\tdy5 = sy[ 3 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 2 ] - ( S5*sy[3] );\n\t\tdy7 = sy[ 1 ] - ( S6*sy[2] );\n\t\tdy8 = sy[ 0 ] - ( S7*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx5;\n\t\t\t\t\tiy += dy5;\n\t\t\t\t}\n\t\t\t\tix += dx6;\n\t\t\t\tiy += dy6;\n\t\t\t}\n\t\t\tix += dx7;\n\t\t\tiy += dy7;\n\t\t}\n\t\tix += dx8;\n\t\tiy += dy8;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary9d;\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/* eslint-disable max-depth, max-len */\n\n'use strict';\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from a ten-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ];\n* var sy = [ 6, 6, 6, 6, 6, 6, 6, 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unary10d( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction unary10d( x, y, fcn, clbk, thisArg ) { // eslint-disable-line max-statements\n\tvar xbuf;\n\tvar ybuf;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar dx7;\n\tvar dx8;\n\tvar dx9;\n\tvar dy0;\n\tvar dy1;\n\tvar dy2;\n\tvar dy3;\n\tvar dy4;\n\tvar dy5;\n\tvar dy6;\n\tvar dy7;\n\tvar dy8;\n\tvar dy9;\n\tvar sh;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar S7;\n\tvar S8;\n\tvar S9;\n\tvar sx;\n\tvar sy;\n\tvar ix;\n\tvar iy;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\tvar i6;\n\tvar i7;\n\tvar i8;\n\tvar i9;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tsy = y.strides;\n\tif ( x.order === 'row-major' ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = sh[ 9 ];\n\t\tS1 = sh[ 8 ];\n\t\tS2 = sh[ 7 ];\n\t\tS3 = sh[ 6 ];\n\t\tS4 = sh[ 5 ];\n\t\tS5 = sh[ 4 ];\n\t\tS6 = sh[ 3 ];\n\t\tS7 = sh[ 2 ];\n\t\tS8 = sh[ 1 ];\n\t\tS9 = sh[ 0 ];\n\t\tdx0 = sx[ 9 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 8 ] - ( S0*sx[9] );\n\t\tdx2 = sx[ 7 ] - ( S1*sx[8] );\n\t\tdx3 = sx[ 6 ] - ( S2*sx[7] );\n\t\tdx4 = sx[ 5 ] - ( S3*sx[6] );\n\t\tdx5 = sx[ 4 ] - ( S4*sx[5] );\n\t\tdx6 = sx[ 3 ] - ( S5*sx[4] );\n\t\tdx7 = sx[ 2 ] - ( S6*sx[3] );\n\t\tdx8 = sx[ 1 ] - ( S7*sx[2] );\n\t\tdx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 9 ];\n\t\tdy1 = sy[ 8 ] - ( S0*sy[9] );\n\t\tdy2 = sy[ 7 ] - ( S1*sy[8] );\n\t\tdy3 = sy[ 6 ] - ( S2*sy[7] );\n\t\tdy4 = sy[ 5 ] - ( S3*sy[6] );\n\t\tdy5 = sy[ 4 ] - ( S4*sy[5] );\n\t\tdy6 = sy[ 3 ] - ( S5*sy[4] );\n\t\tdy7 = sy[ 2 ] - ( S6*sy[3] );\n\t\tdy8 = sy[ 1 ] - ( S7*sy[2] );\n\t\tdy9 = sy[ 0 ] - ( S8*sy[1] );\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tS7 = sh[ 7 ];\n\t\tS8 = sh[ 8 ];\n\t\tS9 = sh[ 9 ];\n\t\tdx0 = sx[ 0 ]; // offset increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5] );\n\t\tdx7 = sx[ 7 ] - ( S6*sx[6] );\n\t\tdx8 = sx[ 8 ] - ( S7*sx[7] );\n\t\tdx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop\n\t\tdy0 = sy[ 0 ];\n\t\tdy1 = sy[ 1 ] - ( S0*sy[0] );\n\t\tdy2 = sy[ 2 ] - ( S1*sy[1] );\n\t\tdy3 = sy[ 3 ] - ( S2*sy[2] );\n\t\tdy4 = sy[ 4 ] - ( S3*sy[3] );\n\t\tdy5 = sy[ 5 ] - ( S4*sy[4] );\n\t\tdy6 = sy[ 6 ] - ( S5*sy[5] );\n\t\tdy7 = sy[ 7 ] - ( S6*sy[6] );\n\t\tdy8 = sy[ 8 ] - ( S7*sy[7] );\n\t\tdy9 = sy[ 9 ] - ( S8*sy[8] );\n\t}\n\t// Set the pointers to the first indexed elements in the respective ndarrays...\n\tix = x.offset;\n\tiy = y.offset;\n\n\t// Cache references to the input and output ndarray buffers...\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Iterate over the ndarray dimensions...\n\ti = 0;\n\tfor ( i9 = 0; i9 < S9; i9++ ) {\n\t\tfor ( i8 = 0; i8 < S8; i8++ ) {\n\t\t\tfor ( i7 = 0; i7 < S7; i7++ ) {\n\t\t\t\tfor ( i6 = 0; i6 < S6; i6++ ) {\n\t\t\t\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\t\t\t\tfor ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\t\t\t\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\t\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\t\t\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\t\t\t\t\t\t\t\t\t\tif ( v !== void 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\tybuf[ iy ] = fcn( v );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t\t\t\t\tiy += dy0;\n\t\t\t\t\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\t\t\t\tiy += dy1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t\t\t\t\tiy += dy2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tix += dx3;\n\t\t\t\t\t\t\t\tiy += dy3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx4;\n\t\t\t\t\t\t\tiy += dy4;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tix += dx5;\n\t\t\t\t\t\tiy += dy5;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx6;\n\t\t\t\t\tiy += dy6;\n\t\t\t\t}\n\t\t\t\tix += dx7;\n\t\t\t\tiy += dy7;\n\t\t\t}\n\t\t\tix += dx8;\n\t\t\tiy += dy8;\n\t\t}\n\t\tix += dx9;\n\t\tiy += dy9;\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unary10d;\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 numel = require( './../../../base/numel' );\nvar vind2bind = require( './../../../base/vind2bind' );\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from an n-dimensional input ndarray according to a callback function and assigns results to elements in an equivalently shaped output ndarray.\n*\n* @private\n* @param {Object} x - object containing input ndarray meta data\n* @param {string} x.dtype - data type\n* @param {Collection} x.data - data buffer\n* @param {NonNegativeIntegerArray} x.shape - dimensions\n* @param {IntegerArray} x.strides - stride lengths\n* @param {NonNegativeInteger} x.offset - index offset\n* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style)\n* @param {Object} y - object containing output ndarray meta data\n* @param {string} y.dtype - data type\n* @param {Collection} y.data - data buffer\n* @param {NonNegativeIntegerArray} y.shape - dimensions\n* @param {IntegerArray} y.strides - stride lengths\n* @param {NonNegativeInteger} y.offset - index offset\n* @param {string} y.order - specifies whether `y` is row-major (C-style) or column-major (Fortran-style)\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] );\n* var ybuf = new Float64Array( 4 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 1 ];\n* var sy = [ 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unarynd( x, y, scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0 ]\n*/\nfunction unarynd( x, y, fcn, clbk, thisArg ) {\n\tvar xbuf;\n\tvar ybuf;\n\tvar ordx;\n\tvar ordy;\n\tvar len;\n\tvar sh;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ix;\n\tvar iy;\n\tvar v;\n\tvar i;\n\n\tsh = x.shape;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( sh );\n\n\t// Cache references to the input and output ndarray data buffers:\n\txbuf = x.data;\n\tybuf = y.data;\n\n\t// Cache references to the respective stride arrays:\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Cache the indices of the first indexed elements in the respective ndarrays:\n\tox = x.offset;\n\toy = y.offset;\n\n\t// Cache the respective array orders:\n\tordx = x.order;\n\tordy = y.order;\n\n\t// Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory...\n\tfor ( i = 0; i < len; i++ ) {\n\t\tix = vind2bind( sh, sx, ox, ordx, i, MODE );\n\t\tiy = vind2bind( sh, sy, oy, ordy, i, MODE );\n\t\tv = clbk.call( thisArg, xbuf[ ix ], i, [ ix, iy ], [ x, y ] );\n\t\tif ( v !== void 0 ) {\n\t\t\tybuf[ iy ] = fcn( v );\n\t\t}\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = unarynd;\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 iterationOrder = require( './../../../base/iteration-order' );\nvar minmaxViewBufferIndex = require( './../../../base/minmax-view-buffer-index' );\nvar ndarray2object = require( './../../../base/ndarraylike2object' );\nvar blockedaccessorunary2d = require( './2d_blocked_accessors.js' );\nvar blockedaccessorunary3d = require( './3d_blocked_accessors.js' );\nvar blockedaccessorunary4d = require( './4d_blocked_accessors.js' );\nvar blockedaccessorunary5d = require( './5d_blocked_accessors.js' );\nvar blockedaccessorunary6d = require( './6d_blocked_accessors.js' );\nvar blockedaccessorunary7d = require( './7d_blocked_accessors.js' );\nvar blockedaccessorunary8d = require( './8d_blocked_accessors.js' );\nvar blockedaccessorunary9d = require( './9d_blocked_accessors.js' );\nvar blockedaccessorunary10d = require( './10d_blocked_accessors.js' );\nvar blockedunary2d = require( './2d_blocked.js' );\nvar blockedunary3d = require( './3d_blocked.js' );\nvar blockedunary4d = require( './4d_blocked.js' );\nvar blockedunary5d = require( './5d_blocked.js' );\nvar blockedunary6d = require( './6d_blocked.js' );\nvar blockedunary7d = require( './7d_blocked.js' );\nvar blockedunary8d = require( './8d_blocked.js' );\nvar blockedunary9d = require( './9d_blocked.js' );\nvar blockedunary10d = require( './10d_blocked.js' );\nvar accessorunary0d = require( './0d_accessors.js' );\nvar accessorunary1d = require( './1d_accessors.js' );\nvar accessorunary2d = require( './2d_accessors.js' );\nvar accessorunary3d = require( './3d_accessors.js' );\nvar accessorunary4d = require( './4d_accessors.js' );\nvar accessorunary5d = require( './5d_accessors.js' );\nvar accessorunary6d = require( './6d_accessors.js' );\nvar accessorunary7d = require( './7d_accessors.js' );\nvar accessorunary8d = require( './8d_accessors.js' );\nvar accessorunary9d = require( './9d_accessors.js' );\nvar accessorunary10d = require( './10d_accessors.js' );\nvar accessorunarynd = require( './nd_accessors.js' );\nvar unary0d = require( './0d.js' );\nvar unary1d = require( './1d.js' );\nvar unary2d = require( './2d.js' );\nvar unary3d = require( './3d.js' );\nvar unary4d = require( './4d.js' );\nvar unary5d = require( './5d.js' );\nvar unary6d = require( './6d.js' );\nvar unary7d = require( './7d.js' );\nvar unary8d = require( './8d.js' );\nvar unary9d = require( './9d.js' );\nvar unary10d = require( './10d.js' );\nvar unarynd = require( './nd.js' );\n\n\n// VARIABLES //\n\nvar UNARY = [\n\tunary0d,\n\tunary1d,\n\tunary2d,\n\tunary3d,\n\tunary4d,\n\tunary5d,\n\tunary6d,\n\tunary7d,\n\tunary8d,\n\tunary9d,\n\tunary10d\n];\nvar ACCESSOR_UNARY = [\n\taccessorunary0d,\n\taccessorunary1d,\n\taccessorunary2d,\n\taccessorunary3d,\n\taccessorunary4d,\n\taccessorunary5d,\n\taccessorunary6d,\n\taccessorunary7d,\n\taccessorunary8d,\n\taccessorunary9d,\n\taccessorunary10d\n];\nvar BLOCKED_UNARY = [\n\tblockedunary2d, // 0\n\tblockedunary3d,\n\tblockedunary4d,\n\tblockedunary5d,\n\tblockedunary6d,\n\tblockedunary7d,\n\tblockedunary8d,\n\tblockedunary9d,\n\tblockedunary10d // 8\n];\nvar BLOCKED_ACCESSOR_UNARY = [\n\tblockedaccessorunary2d, // 0\n\tblockedaccessorunary3d,\n\tblockedaccessorunary4d,\n\tblockedaccessorunary5d,\n\tblockedaccessorunary6d,\n\tblockedaccessorunary7d,\n\tblockedaccessorunary8d,\n\tblockedaccessorunary9d,\n\tblockedaccessorunary10d // 8\n];\nvar MAX_DIMS = UNARY.length - 1;\n\n\n// MAIN //\n\n/**\n* Applies a unary function to each element retrieved from an input ndarray according to a callback function and assigns results to elements in an output ndarray.\n*\n* ## Notes\n*\n* - Each provided ndarray should be an `object` with the following properties:\n*\n* - **dtype**: data type.\n* - **data**: data buffer.\n* - **shape**: dimensions.\n* - **strides**: stride lengths.\n* - **offset**: index offset.\n* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style).\n*\n* @param {ArrayLikeObject} arrays - array-like object containing one input array and one output array\n* @param {Function} fcn - unary function to apply to callback return values\n* @param {Callback} clbk - callback\n* @param {*} [thisArg] - callback execution context\n* @throws {Error} arrays must have the same number of dimensions\n* @throws {Error} arrays must have the same shape\n* @returns {void}\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unaryBy( [ x, y ], scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.0 ]\n*/\nfunction unaryBy( arrays, fcn, clbk, thisArg ) {\n\tvar ndims;\n\tvar xmmv;\n\tvar ymmv;\n\tvar shx;\n\tvar shy;\n\tvar iox;\n\tvar ioy;\n\tvar len;\n\tvar sx;\n\tvar sy;\n\tvar ox;\n\tvar oy;\n\tvar ns;\n\tvar x;\n\tvar y;\n\tvar d;\n\tvar i;\n\n\t// Unpack the ndarrays and standardize ndarray meta data:\n\tx = ndarray2object( arrays[ 0 ] );\n\ty = ndarray2object( arrays[ 1 ] );\n\n\t// Verify that the input and output arrays have the same number of dimensions...\n\tshx = x.shape;\n\tshy = y.shape;\n\tndims = shx.length;\n\tif ( ndims !== shy.length ) {\n\t\tthrow new Error( 'invalid arguments. Arrays must have the same number of dimensions (i.e., same rank). ndims(x) == '+ndims+'. ndims(y) == '+shy.length+'.' );\n\t}\n\t// Determine whether we can avoid iteration altogether...\n\tif ( ndims === 0 ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ ndims ]( x, y, fcn, clbk, thisArg );\n\t\t}\n\t\treturn UNARY[ ndims ]( x, y, fcn, clbk, thisArg );\n\t}\n\t// Verify that the input and output arrays have the same dimensions...\n\tlen = 1; // number of elements\n\tns = 0; // number of singleton dimensions\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = shx[ i ];\n\t\tif ( d !== shy[ i ] ) {\n\t\t\tthrow new Error( 'invalid arguments. Arrays must have the same shape.' );\n\t\t}\n\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\tlen *= d;\n\n\t\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( d === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t}\n\t// Check whether we were provided empty ndarrays...\n\tif ( len === 0 ) {\n\t\treturn;\n\t}\n\t// Determine whether the ndarrays are one-dimensional and thus readily translate to one-dimensional strided arrays...\n\tif ( ndims === 1 ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ ndims ]( x, y, fcn, clbk, thisArg );\n\t\t}\n\t\treturn UNARY[ ndims ]( x, y, fcn, clbk, thisArg );\n\t}\n\tsx = x.strides;\n\tsy = y.strides;\n\n\t// Determine whether the ndarray has only **one** non-singleton dimension (e.g., ndims=4, shape=[10,1,1,1]) so that we can treat the ndarrays as being equivalent to one-dimensional strided arrays...\n\tif ( ns === ndims-1 ) {\n\t\t// Get the index of the non-singleton dimension...\n\t\tfor ( i = 0; i < ndims; i++ ) {\n\t\t\tif ( shx[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tx.shape = [ shx[i] ];\n\t\ty.shape = x.shape;\n\t\tx.strides = [ sx[i] ];\n\t\ty.strides = [ sy[i] ];\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn ACCESSOR_UNARY[ 1 ]( x, y, fcn, clbk, thisArg );\n\t\t}\n\t\treturn UNARY[ 1 ]( x, y, fcn, clbk, thisArg );\n\t}\n\tiox = iterationOrder( sx ); // +/-1\n\tioy = iterationOrder( sy ); // +/-1\n\n\t// Determine whether we can avoid blocked iteration...\n\tif ( iox !== 0 && ioy !== 0 && x.order === y.order ) {\n\t\t// Determine the minimum and maximum linear indices which are accessible by the array views:\n\t\txmmv = minmaxViewBufferIndex( shx, sx, x.offset );\n\t\tymmv = minmaxViewBufferIndex( shy, sy, y.offset );\n\n\t\t// Determine whether we can ignore shape (and strides) and treat the ndarrays as linear one-dimensional strided arrays...\n\t\tif ( len === ( xmmv[1]-xmmv[0]+1 ) && len === ( ymmv[1]-ymmv[0]+1 ) ) {\n\t\t\t// Note: the above is equivalent to @stdlib/ndarray/base/assert/is-contiguous, but in-lined so we can retain computed values...\n\t\t\tif ( iox === 1 ) {\n\t\t\t\tox = xmmv[ 0 ];\n\t\t\t} else {\n\t\t\t\tox = xmmv[ 1 ];\n\t\t\t}\n\t\t\tif ( ioy === 1 ) {\n\t\t\t\toy = ymmv[ 0 ];\n\t\t\t} else {\n\t\t\t\toy = ymmv[ 1 ];\n\t\t\t}\n\t\t\tx.shape = [ len ];\n\t\t\ty.shape = x.shape;\n\t\t\tx.strides = [ iox ];\n\t\t\ty.strides = [ ioy ];\n\t\t\tx.offset = ox;\n\t\t\ty.offset = oy;\n\t\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_UNARY[ 1 ]( x, y, fcn, clbk, thisArg );\n\t\t\t}\n\t\t\treturn UNARY[ 1 ]( x, y, fcn, clbk, thisArg );\n\t\t}\n\t\t// At least one ndarray is non-contiguous, so we cannot directly use one-dimensional array functionality...\n\n\t\t// Determine whether we can use simple nested loops...\n\t\tif ( ndims <= MAX_DIMS ) {\n\t\t\t// So long as iteration for each respective array always moves in the same direction (i.e., no mixed sign strides), we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\t\treturn ACCESSOR_UNARY[ ndims ]( x, y, fcn, clbk, thisArg );\n\t\t\t}\n\t\t\treturn UNARY[ ndims ]( x, y, fcn, clbk, thisArg );\n\t\t}\n\t\t// Fall-through to blocked iteration...\n\t}\n\t// At this point, we're either dealing with non-contiguous n-dimensional arrays, high dimensional n-dimensional arrays, and/or arrays having differing memory layouts, so our only hope is that we can still perform blocked iteration...\n\n\t// Determine whether we can perform blocked iteration...\n\tif ( ndims <= MAX_DIMS ) {\n\t\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\t\treturn BLOCKED_ACCESSOR_UNARY[ ndims-2 ]( x, y, fcn, clbk, thisArg ); // eslint-disable-line max-len\n\t\t}\n\t\treturn BLOCKED_UNARY[ ndims-2 ]( x, y, fcn, clbk, thisArg );\n\t}\n\t// Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\tif ( x.accessorProtocol || y.accessorProtocol ) {\n\t\treturn accessorunarynd( x, y, fcn, clbk, thisArg );\n\t}\n\tunarynd( x, y, fcn, clbk, thisArg );\n}\n\n\n// EXPORTS //\n\nmodule.exports = unaryBy;\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* Apply a unary function to each element retrieved from an input ndarray according to a callback function and assign results to elements in an output ndarray.\n*\n* @module @stdlib/ndarray/base/unary-by\n*\n* @example\n* var Float64Array = require( '@stdlib/array/float64' );\n* var unaryBy = require( '@stdlib/ndarray/base/unary-by' );\n*\n* function scale( x ) {\n* return x * 10.0;\n* }\n*\n* function accessor( v ) {\n* return v * 2.0;\n* }\n*\n* // Create data buffers:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] );\n* var ybuf = new Float64Array( 6 );\n*\n* // Define the shape of the input and output arrays:\n* var shape = [ 3, 1, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 4, 1 ];\n* var sy = [ 2, 2, 1 ];\n*\n* // Define the index offsets:\n* var ox = 1;\n* var oy = 0;\n*\n* // Create the input and output ndarray-like objects:\n* var x = {\n* 'dtype': 'float64',\n* 'data': xbuf,\n* 'shape': shape,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n* var y = {\n* 'dtype': 'float64',\n* 'data': ybuf,\n* 'shape': shape,\n* 'strides': sy,\n* 'offset': oy,\n* 'order': 'row-major'\n* };\n*\n* // Apply the unary function:\n* unaryBy( [ x, y ], scale, accessor );\n*\n* console.log( y.data );\n* // => [ 40.0, 60.0, 120.0, 140.0, 200.0, 220.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 isFloatingPointDataType = require( './../../../base/assert/is-floating-point-data-type' );\nvar isRealFloatingPointDataType = require( './../../../base/assert/is-real-floating-point-data-type' ); // eslint-disable-line id-length\nvar isComplexFloatingPointDataType = require( './../../../base/assert/is-complex-floating-point-data-type' ); // eslint-disable-line id-length\nvar isIntegerDataType = require( './../../../base/assert/is-integer-data-type' );\nvar isSignedIntegerDataType = require( './../../../base/assert/is-signed-integer-data-type' );\nvar isUnsignedIntegerDataType = require( './../../../base/assert/is-unsigned-integer-data-type' );\nvar isRealDataType = require( './../../../base/assert/is-real-data-type' );\nvar isNumericDataType = require( './../../../base/assert/is-numeric-data-type' );\nvar isDataType = require( './../../../base/assert/is-data-type' );\nvar defaults = require( './../../../defaults' );\nvar format = require( '@stdlib/string/format' );\n\n\n// VARIABLES //\n\nvar POLICY_TABLE = {\n\t'floating_point': [\n\t\tisFloatingPointDataType,\n\t\tdefaults.get( 'dtypes.floating_point' )\n\t],\n\t'real_floating_point': [\n\t\tisRealFloatingPointDataType,\n\t\tdefaults.get( 'dtypes.real_floating_point' )\n\t],\n\t'complex_floating_point': [\n\t\tisComplexFloatingPointDataType,\n\t\tdefaults.get( 'dtypes.complex_floating_point' )\n\t],\n\n\t'integer': [\n\t\tisIntegerDataType,\n\t\tdefaults.get( 'dtypes.integer' )\n\t],\n\t'signed_integer': [\n\t\tisSignedIntegerDataType,\n\t\tdefaults.get( 'dtypes.signed_integer' )\n\t],\n\t'unsigned_integer': [\n\t\tisUnsignedIntegerDataType,\n\t\tdefaults.get( 'dtypes.unsigned_integer' )\n\t],\n\n\t'real': [\n\t\tisRealDataType,\n\t\tdefaults.get( 'dtypes.real' )\n\t],\n\n\t'numeric': [\n\t\tisNumericDataType,\n\t\tdefaults.get( 'dtypes.numeric' )\n\t]\n};\nvar DEFAULT_DTYPE = defaults.get( 'dtypes.default' );\n\n\n// MAIN //\n\n/**\n* Resolves the output ndarray data type for a unary function.\n*\n* @param {string} dtype - input ndarray data type\n* @param {string} policy - output ndarray data type policy\n* @throws {TypeError} second argument must be a recognized data type policy\n* @throws {Error} unexpected error\n* @returns {string} output ndarray data type\n*\n* @example\n* var dt = resolve( 'float64', 'complex_floating_point' );\n* // returns \n*/\nfunction resolve( dtype, policy ) {\n\tvar p;\n\tif ( policy === 'default' ) {\n\t\t// When the policy is \"default\", the output data type should always be the default data type without consideration for the input data type:\n\t\treturn DEFAULT_DTYPE;\n\t}\n\tif ( policy === 'same' || policy === 'promoted' ) { // note: for unary APIs, the \"promoted\" data type is the same as the input data type\n\t\treturn dtype;\n\t}\n\tif ( policy === 'bool' ) {\n\t\tthrow new Error( 'not implemented' ); // TODO: update once the `bool` dtype is supported\n\t}\n\tp = POLICY_TABLE[ policy ];\n\tif ( p === void 0 ) {\n\t\t// Check for an explicit data type...\n\t\tif ( isDataType( policy ) ) {\n\t\t\treturn policy;\n\t\t}\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a supported data type policy. Value: `%s`.', policy ) );\n\t}\n\tif ( p[ 0 ]( dtype ) ) {\n\t\treturn dtype;\n\t}\n\treturn p[ 1 ];\n}\n\n\n// EXPORTS //\n\nmodule.exports = resolve;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Resolve the output ndarray data type for a unary function.\n*\n* @module @stdlib/ndarray/base/unary-output-dtype\n*\n* @example\n* var resolve = require( '@stdlib/ndarray/base/unary-output-dtype' );\n*\n* var dt = resolve( 'float64', 'complex_floating_point' );\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 shape2strides = require( './../../../base/shape2strides' );\nvar strides2offset = require( './../../../base/strides2offset' );\nvar buffer = require( './../../../base/buffer' );\nvar format = require( '@stdlib/string/format' );\nvar ndarray = require( './../../../base/ctor' );\nvar numel = require( './../../../base/numel' );\n\n\n// MAIN //\n\n/**\n* Creates a zero-filled ndarray having a specified shape and data type.\n*\n* @param {string} dtype - data type\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {string} order - array order\n* @throws {TypeError} first argument must be a recognized data type\n* @returns {ndarray} ndarray\n*\n* @example\n* var arr = zeros( 'float32', [ 2, 2 ], 'row-major' );\n* // returns \n*\n* var sh = arr.shape;\n* // returns [ 2, 2 ]\n*\n* var dt = arr.dtype;\n* // returns 'float32'\n*/\nfunction zeros( dtype, shape, order ) {\n\tvar ndims;\n\tvar buf;\n\tvar len;\n\tvar st;\n\n\tndims = shape.length;\n\tif ( ndims > 0 ) {\n\t\tlen = numel( shape );\n\t\tst = shape2strides( shape, order );\n\t} else {\n\t\t// For 0-dimensional arrays, the buffer should contain a single element...\n\t\tlen = 1;\n\t\tst = [ 0 ];\n\t}\n\tbuf = buffer( dtype, len );\n\tif ( buf === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a recognized data type. Value: `%s`.', dtype ) );\n\t}\n\n\treturn new ndarray( dtype, buf, shape, st, strides2offset( shape, st ), order ); // eslint-disable-line max-len\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 ndarray having a specified shape and data type.\n*\n* @module @stdlib/ndarray/base/zeros\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/base/zeros' );\n*\n* var arr = zeros( 'float32', [ 2, 2 ], 'row-major' );\n* // returns \n*\n* var sh = arr.shape;\n* // returns [ 2, 2 ]\n*\n* var dt = arr.dtype;\n* // returns 'float32'\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 shape2strides = require( './../../../base/shape2strides' );\nvar strides2offset = require( './../../../base/strides2offset' );\nvar buffer = require( './../../../base/buffer' );\nvar numel = require( './../../../base/numel' );\nvar getDType = require( './../../../base/dtype' );\nvar getShape = require( './../../../base/shape' );\nvar getOrder = require( './../../../base/order' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Creates a zero-filled ndarray having the same shape and data type as a provided ndarray.\n*\n* @param {ndarray} x - input array\n* @throws {TypeError} first argument must have a recognized data type\n* @returns {ndarray} ndarray\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/base/zeros' );\n*\n* var x = zeros( 'float32', [ 2, 2 ], 'row-major' );\n* // returns \n*\n* var y = zerosLike( x );\n* // returns \n*\n* var sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* var dt = y.dtype;\n* // returns 'float32'\n*/\nfunction zerosLike( x ) {\n\tvar ndims;\n\tvar len;\n\tvar buf;\n\tvar ord;\n\tvar sh;\n\tvar st;\n\tvar dt;\n\n\tdt = getDType( x );\n\tsh = getShape( x, true );\n\tord = getOrder( x );\n\n\tndims = sh.length;\n\tif ( ndims > 0 ) {\n\t\tlen = numel( sh );\n\t\tst = shape2strides( sh, ord );\n\t} else {\n\t\t// For 0-dimensional arrays, the buffer should contain a single element...\n\t\tlen = 1;\n\t\tst = [ 0 ];\n\t}\n\tbuf = buffer( dt, len );\n\tif ( buf === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must have a recognized data type. Value: `%s`.', dt ) );\n\t}\n\treturn new x.constructor( dt, buf, sh, st, strides2offset( sh, st ), ord );\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 ndarray having the same shape and data type as a provided ndarray.\n*\n* @module @stdlib/ndarray/base/zeros-like\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/base/zeros' );\n* var zerosLike = require( '@stdlib/ndarray/base/zeros-like' );\n*\n* var x = zeros( 'float32', [ 2, 2 ], 'row-major' );\n* // returns \n*\n* var y = zerosLike( x );\n* // returns \n*\n* var sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* var dt = y.dtype;\n* // returns 'float32'\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: function-object, napi, unary\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 assert\n* @memberof ns\n* @readonly\n* @type {Namespace}\n* @see {@link module:@stdlib/ndarray/base/assert}\n*/\nsetReadOnly( ns, 'assert', require( './../../base/assert' ) );\n\n/**\n* @name assign\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/assign}\n*/\nsetReadOnly( ns, 'assign', require( './../../base/assign' ) );\n\n/**\n* @name binaryLoopOrder\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/binary-loop-interchange-order}\n*/\nsetReadOnly( ns, 'binaryLoopOrder', require( './../../base/binary-loop-interchange-order' ) );\n\n/**\n* @name binaryBlockSize\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/binary-tiling-block-size}\n*/\nsetReadOnly( ns, 'binaryBlockSize', require( './../../base/binary-tiling-block-size' ) );\n\n/**\n* @name bind2vind\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/bind2vind}\n*/\nsetReadOnly( ns, 'bind2vind', require( './../../base/bind2vind' ) );\n\n/**\n* @name broadcastArray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/broadcast-array}\n*/\nsetReadOnly( ns, 'broadcastArray', require( './../../base/broadcast-array' ) );\n\n/**\n* @name broadcastScalar\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/broadcast-scalar}\n*/\nsetReadOnly( ns, 'broadcastScalar', require( './../../base/broadcast-scalar' ) );\n\n/**\n* @name broadcastShapes\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/broadcast-shapes}\n*/\nsetReadOnly( ns, 'broadcastShapes', require( './../../base/broadcast-shapes' ) );\n\n/**\n* @name buffer\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/buffer}\n*/\nsetReadOnly( ns, 'buffer', require( './../../base/buffer' ) );\n\n/**\n* @name bufferCtors\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/buffer-ctors}\n*/\nsetReadOnly( ns, 'bufferCtors', require( './../../base/buffer-ctors' ) );\n\n/**\n* @name bufferDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/buffer-dtype}\n*/\nsetReadOnly( ns, 'bufferDataType', require( './../../base/buffer-dtype' ) );\n\n/**\n* @name bufferDataTypeEnum\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/buffer-dtype-enum}\n*/\nsetReadOnly( ns, 'bufferDataTypeEnum', require( './../../base/buffer-dtype-enum' ) );\n\n/**\n* @name bytesPerElement\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/bytes-per-element}\n*/\nsetReadOnly( ns, 'bytesPerElement', require( './../../base/bytes-per-element' ) );\n\n/**\n* @name char2dtype\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/char2dtype}\n*/\nsetReadOnly( ns, 'char2dtype', require( './../../base/char2dtype' ) );\n\n/**\n* @name clampIndex\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/clamp-index}\n*/\nsetReadOnly( ns, 'clampIndex', require( './../../base/clamp-index' ) );\n\n/**\n* @name ndarray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ctor}\n*/\nsetReadOnly( ns, 'ndarray', require( './../../base/ctor' ) );\n\n/**\n* @name data\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/data-buffer}\n*/\nsetReadOnly( ns, 'data', require( './../../base/data-buffer' ) );\n\n/**\n* @name dtype\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype}\n*/\nsetReadOnly( ns, 'dtype', require( './../../base/dtype' ) );\n\n/**\n* @name dtypeChar\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype-char}\n*/\nsetReadOnly( ns, 'dtypeChar', require( './../../base/dtype-char' ) );\n\n/**\n* @name dtypeDesc\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype-desc}\n*/\nsetReadOnly( ns, 'dtypeDesc', require( './../../base/dtype-desc' ) );\n\n/**\n* @name dtypeEnum2Str\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype-enum2str}\n*/\nsetReadOnly( ns, 'dtypeEnum2Str', require( './../../base/dtype-enum2str' ) );\n\n/**\n* @name dtypeResolveEnum\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype-resolve-enum}\n*/\nsetReadOnly( ns, 'dtypeResolveEnum', require( './../../base/dtype-resolve-enum' ) );\n\n/**\n* @name dtypeResolveStr\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype-resolve-str}\n*/\nsetReadOnly( ns, 'dtypeResolveStr', require( './../../base/dtype-resolve-str' ) );\n\n/**\n* @name dtypeStr2Enum\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype-str2enum}\n*/\nsetReadOnly( ns, 'dtypeStr2Enum', require( './../../base/dtype-str2enum' ) );\n\n/**\n* @name dtype2c\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtype2c}\n*/\nsetReadOnly( ns, 'dtype2c', require( './../../base/dtype2c' ) );\n\n/**\n* @name dtypes2signatures\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/dtypes2signatures}\n*/\nsetReadOnly( ns, 'dtypes2signatures', require( './../../base/dtypes2signatures' ) );\n\n/**\n* @name empty\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/empty}\n*/\nsetReadOnly( ns, 'empty', require( './../../base/empty' ) );\n\n/**\n* @name emptyLike\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/empty-like}\n*/\nsetReadOnly( ns, 'emptyLike', require( './../../base/empty-like' ) );\n\n/**\n* @name expandDimensions\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/expand-dimensions}\n*/\nsetReadOnly( ns, 'expandDimensions', require( './../../base/expand-dimensions' ) );\n\n/**\n* @name fliplr\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/fliplr}\n*/\nsetReadOnly( ns, 'fliplr', require( './../../base/fliplr' ) );\n\n/**\n* @name flipud\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/flipud}\n*/\nsetReadOnly( ns, 'flipud', require( './../../base/flipud' ) );\n\n/**\n* @name scalar2ndarray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/from-scalar}\n*/\nsetReadOnly( ns, 'scalar2ndarray', require( './../../base/from-scalar' ) );\n\n/**\n* @name ind\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ind}\n*/\nsetReadOnly( ns, 'ind', require( './../../base/ind' ) );\n\n/**\n* @name ind2sub\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ind2sub}\n*/\nsetReadOnly( ns, 'ind2sub', require( './../../base/ind2sub' ) );\n\n/**\n* @name iterationOrder\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/iteration-order}\n*/\nsetReadOnly( ns, 'iterationOrder', require( './../../base/iteration-order' ) );\n\n/**\n* @name maxViewBufferIndex\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/max-view-buffer-index}\n*/\nsetReadOnly( ns, 'maxViewBufferIndex', require( './../../base/max-view-buffer-index' ) );\n\n/**\n* @name maybeBroadcastArray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/maybe-broadcast-array}\n*/\nsetReadOnly( ns, 'maybeBroadcastArray', require( './../../base/maybe-broadcast-array' ) );\n\n/**\n* @name metaDataProps\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/meta-data-props}\n*/\nsetReadOnly( ns, 'metaDataProps', require( './../../base/meta-data-props' ) );\n\n/**\n* @name minViewBufferIndex\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/min-view-buffer-index}\n*/\nsetReadOnly( ns, 'minViewBufferIndex', require( './../../base/min-view-buffer-index' ) );\n\n/**\n* @name minmaxViewBufferIndex\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/minmax-view-buffer-index}\n*/\nsetReadOnly( ns, 'minmaxViewBufferIndex', require( './../../base/minmax-view-buffer-index' ) );\n\n/**\n* @name ndarraylike2object\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ndarraylike2object}\n*/\nsetReadOnly( ns, 'ndarraylike2object', require( './../../base/ndarraylike2object' ) );\n\n/**\n* @name ndims\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/ndims}\n*/\nsetReadOnly( ns, 'ndims', require( './../../base/ndims' ) );\n\n/**\n* @name nextCartesianIndex\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/next-cartesian-index}\n*/\nsetReadOnly( ns, 'nextCartesianIndex', require( './../../base/next-cartesian-index' ) );\n\n/**\n* @name nonsingletonDimensions\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/nonsingleton-dimensions}\n*/\nsetReadOnly( ns, 'nonsingletonDimensions', require( './../../base/nonsingleton-dimensions' ) );\n\n/**\n* @name normalizeIndex\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/normalize-index}\n*/\nsetReadOnly( ns, 'normalizeIndex', require( './../../base/normalize-index' ) );\n\n/**\n* @name nullary\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/nullary}\n*/\nsetReadOnly( ns, 'nullary', require( './../../base/nullary' ) );\n\n/**\n* @name nullaryLoopOrder\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/nullary-loop-interchange-order}\n*/\nsetReadOnly( ns, 'nullaryLoopOrder', require( './../../base/nullary-loop-interchange-order' ) );\n\n/**\n* @name nullaryBlockSize\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/nullary-tiling-block-size}\n*/\nsetReadOnly( ns, 'nullaryBlockSize', require( './../../base/nullary-tiling-block-size' ) );\n\n/**\n* @name numel\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/numel}\n*/\nsetReadOnly( ns, 'numel', require( './../../base/numel' ) );\n\n/**\n* @name offset\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/offset}\n*/\nsetReadOnly( ns, 'offset', require( './../../base/offset' ) );\n\n/**\n* @name order\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/order}\n*/\nsetReadOnly( ns, 'order', require( './../../base/order' ) );\n\n/**\n* @name outputPolicyEnum2Str\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/output-policy-enum2str}\n*/\nsetReadOnly( ns, 'outputPolicyEnum2Str', require( './../../base/output-policy-enum2str' ) );\n\n/**\n* @name outputPolicyResolveEnum\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/output-policy-resolve-enum}\n*/\nsetReadOnly( ns, 'outputPolicyResolveEnum', require( './../../base/output-policy-resolve-enum' ) );\n\n/**\n* @name outputPolicyResolveStr\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/output-policy-resolve-str}\n*/\nsetReadOnly( ns, 'outputPolicyResolveStr', require( './../../base/output-policy-resolve-str' ) );\n\n/**\n* @name outputPolicyStr2Enum\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/output-policy-str2enum}\n*/\nsetReadOnly( ns, 'outputPolicyStr2Enum', require( './../../base/output-policy-str2enum' ) );\n\n/**\n* @name prependSingletonDimensions\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/prepend-singleton-dimensions}\n*/\nsetReadOnly( ns, 'prependSingletonDimensions', require( './../../base/prepend-singleton-dimensions' ) );\n\n/**\n* @name removeSingletonDimensions\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/remove-singleton-dimensions}\n*/\nsetReadOnly( ns, 'removeSingletonDimensions', require( './../../base/remove-singleton-dimensions' ) );\n\n/**\n* @name reverse\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/reverse}\n*/\nsetReadOnly( ns, 'reverse', require( './../../base/reverse' ) );\n\n/**\n* @name reverseDimension\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/reverse-dimension}\n*/\nsetReadOnly( ns, 'reverseDimension', require( './../../base/reverse-dimension' ) );\n\n/**\n* @name serializeMetaData\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/serialize-meta-data}\n*/\nsetReadOnly( ns, 'serializeMetaData', require( './../../base/serialize-meta-data' ) );\n\n/**\n* @name shape\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/shape}\n*/\nsetReadOnly( ns, 'shape', require( './../../base/shape' ) );\n\n/**\n* @name shape2strides\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/shape2strides}\n*/\nsetReadOnly( ns, 'shape2strides', require( './../../base/shape2strides' ) );\n\n/**\n* @name singletonDimensions\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/singleton-dimensions}\n*/\nsetReadOnly( ns, 'singletonDimensions', require( './../../base/singleton-dimensions' ) );\n\n/**\n* @name slice\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/slice}\n*/\nsetReadOnly( ns, 'slice', require( './../../base/slice' ) );\n\n/**\n* @name sliceAssign\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/slice-assign}\n*/\nsetReadOnly( ns, 'sliceAssign', require( './../../base/slice-assign' ) );\n\n/**\n* @name sliceDimension\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/slice-dimension}\n*/\nsetReadOnly( ns, 'sliceDimension', require( './../../base/slice-dimension' ) );\n\n/**\n* @name sliceDimensionFrom\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/slice-dimension-from}\n*/\nsetReadOnly( ns, 'sliceDimensionFrom', require( './../../base/slice-dimension-from' ) );\n\n/**\n* @name sliceDimensionTo\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/slice-dimension-to}\n*/\nsetReadOnly( ns, 'sliceDimensionTo', require( './../../base/slice-dimension-to' ) );\n\n/**\n* @name sliceFrom\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/slice-from}\n*/\nsetReadOnly( ns, 'sliceFrom', require( './../../base/slice-from' ) );\n\n/**\n* @name sliceTo\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/slice-to}\n*/\nsetReadOnly( ns, 'sliceTo', require( './../../base/slice-to' ) );\n\n/**\n* @name strides\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/strides}\n*/\nsetReadOnly( ns, 'strides', require( './../../base/strides' ) );\n\n/**\n* @name strides2offset\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/strides2offset}\n*/\nsetReadOnly( ns, 'strides2offset', require( './../../base/strides2offset' ) );\n\n/**\n* @name strides2order\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/strides2order}\n*/\nsetReadOnly( ns, 'strides2order', require( './../../base/strides2order' ) );\n\n/**\n* @name sub2ind\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/sub2ind}\n*/\nsetReadOnly( ns, 'sub2ind', require( './../../base/sub2ind' ) );\n\n/**\n* @name ndarray2array\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/to-array}\n*/\nsetReadOnly( ns, 'ndarray2array', require( './../../base/to-array' ) );\n\n/**\n* @name transpose\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/transpose}\n*/\nsetReadOnly( ns, 'transpose', require( './../../base/transpose' ) );\n\n/**\n* @name unary\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary}\n*/\nsetReadOnly( ns, 'unary', require( './../../base/unary' ) );\n\n/**\n* @name unaryBy\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-by}\n*/\nsetReadOnly( ns, 'unaryBy', require( './../../base/unary-by' ) );\n\n/**\n* @name unaryLoopOrder\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-loop-interchange-order}\n*/\nsetReadOnly( ns, 'unaryLoopOrder', require( './../../base/unary-loop-interchange-order' ) );\n\n/**\n* @name unaryOutputDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-output-dtype}\n*/\nsetReadOnly( ns, 'unaryOutputDataType', require( './../../base/unary-output-dtype' ) );\n\n/**\n* @name unaryBlockSize\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/unary-tiling-block-size}\n*/\nsetReadOnly( ns, 'unaryBlockSize', require( './../../base/unary-tiling-block-size' ) );\n\n/**\n* @name vind2bind\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/vind2bind}\n*/\nsetReadOnly( ns, 'vind2bind', require( './../../base/vind2bind' ) );\n\n/**\n* @name wrapIndex\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/wrap-index}\n*/\nsetReadOnly( ns, 'wrapIndex', require( './../../base/wrap-index' ) );\n\n/**\n* @name zeros\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/zeros}\n*/\nsetReadOnly( ns, 'zeros', require( './../../base/zeros' ) );\n\n/**\n* @name zerosLike\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/base/zeros-like}\n*/\nsetReadOnly( ns, 'zerosLike', require( './../../base/zeros-like' ) );\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// MODULES //\n\nvar isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar copy = require( '@stdlib/array/base/copy-indexed' );\nvar getDType = require( './../../dtype' );\nvar getShape = require( './../../shape' );\nvar getStrides = require( './../../strides' );\nvar getOffset = require( './../../offset' );\nvar getOrder = require( './../../order' );\nvar getData = require( './../../data-buffer' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Broadcasts an ndarray to a specified shape.\n*\n* ## Notes\n*\n* - The returned array is a **read-only** view on the input array data buffer. The view is typically **not** contiguous. As more than one element of a returned view may refer to the same memory location, writing to the input array may affect multiple elements. If you need to write to the input array, copy the input array before broadcasting.\n*\n* @param {ndarray} x - input array\n* @param {NonNegativeIntegerArray} shape - desired shape\n* @throws {TypeError} first argument must be an ndarray\n* @throws {TypeError} second argument must be an array of nonnegative integers\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 shape\n* @throws {Error} input array and desired shape must be broadcast compatible\n* @returns {ndarray} broadcasted array\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var shx = x.shape;\n* // returns [ 2, 2 ]\n*\n* var y = broadcastArray( x, [ 3, 2, 2 ] );\n* // returns \n*\n* var shy = y.shape;\n* // returns [ 3, 2, 2 ]\n*\n* var v = y.get( 0, 0, 0 );\n* // returns 1\n*\n* v = y.get( 0, 0, 1 );\n* // returns 2\n*\n* v = y.get( 1, 0, 0 );\n* // returns 1\n*\n* v = y.get( 1, 1, 0 );\n* // returns 3\n*\n* v = y.get( 2, 0, 0 );\n* // returns 1\n*\n* v = y.get( 2, 1, 1 );\n* // returns 4\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var y = broadcastArray( x, [ 3, 2 ] );\n* // throws \n*/\nfunction broadcastArray( x, shape ) {\n\tvar strides;\n\tvar dim;\n\tvar sh;\n\tvar st;\n\tvar N;\n\tvar M;\n\tvar d;\n\tvar i;\n\tvar j;\n\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray. Value: `%s`.', x ) );\n\t}\n\tif ( !isCollection( shape ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an array of nonnegative integers. Value: `%s`.', shape ) );\n\t}\n\tN = shape.length;\n\tsh = getShape( x );\n\tM = sh.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// Initialize a strides array...\n\tstrides = [];\n\tfor ( i = 0; i < N; i++ ) {\n\t\tstrides.push( 0 );\n\t}\n\t// Determine the output array strides...\n\tst = getStrides( x );\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 = sh[ j ];\n\t\tdim = shape[ i ];\n\t\tif ( !isNonNegativeInteger( dim ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an array of nonnegative integers. Value: `%s`.', '[' + shape.join( ',' ) + ']' ) );\n\t\t}\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( sh ).join( ', ' ), copy( shape ).join( ', ' ), i ) );\n\t\t}\n\t\tif ( d === dim ) {\n\t\t\tstrides[ i ] = st[ j ];\n\t\t} else if ( d === 1 ) {\n\t\t\t// In order to broadcast dimensions, we set the stride for that dimension to zero...\n\t\t\tstrides[ 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( sh ).join( ', ' ), copy( shape ).join( ', ' ), i ) );\n\t\t}\n\t}\n\treturn new x.constructor( getDType( x ), getData( x ), copy( shape ), strides, getOffset( x ), getOrder( x ), { // eslint-disable-line max-len\n\t\t'readonly': true\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 ndarray to a specified shape.\n*\n* @module @stdlib/ndarray/broadcast-array\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n* var broadcastArray = require( '@stdlib/ndarray/broadcast-array' );\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var shx = x.shape;\n* // returns [ 2, 2 ]\n*\n* var y = broadcastArray( x, [ 3, 2, 2 ] );\n* // returns \n*\n* var shy = y.shape;\n* // returns [ 3, 2, 2 ]\n*\n* var v = y.get( 0, 0, 0 );\n* // returns 1\n*\n* v = y.get( 0, 0, 1 );\n* // returns 2\n*\n* v = y.get( 1, 0, 0 );\n* // returns 1\n*\n* v = y.get( 1, 1, 0 );\n* // returns 3\n*\n* v = y.get( 2, 0, 0 );\n* // returns 1\n*\n* v = y.get( 2, 1, 1 );\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) 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* Returns the first row index at which a given one-dimensional array of types can be found in a two-dimensional reference array of types (or `-1` if not found).\n*\n* ## Notes\n*\n* - The intended use case for this function is for type dispatch (i.e., given a set of array data types, find a matching interface according the interface's accepted array data types).\n* - The function assumes that `x` is stored in row-major order.\n* - The function assumes that the number of indexed elements in `y` equals the number of columns in `x`.\n* - The function returns a row index. To convert to a linear index, multiply `strideX1` by the return value.\n*\n* @private\n* @param {NonNegativeInteger} N - number of rows in `x` (size of first dimension)\n* @param {NonNegativeInteger} M - number of columns in `x` (size of second dimension)\n* @param {ArrayLikeObject} x - input two-dimensional reference array\n* @param {integer} strideX1 - `x` stride length along first dimension\n* @param {integer} strideX2 - `x` stride length along second dimension\n* @param {NonNegativeInteger} offsetX - `x` starting index\n* @param {ArrayLikeObject} y - search array\n* @param {integer} strideY - `y` stride length\n* @param {NonNegativeInteger} offsetY - `y` starting index\n* @returns {integer} row index (if found) and `-1` otherwise\n*\n* @example\n* // Define a reference array to search:\n* var types = [\n* 'float64', 'float64', 'float64',\n* 'float32', 'float32', 'float32',\n* 'uint32', 'uint32', 'float64',\n* 'int32', 'int32', 'float64',\n* 'uint16', 'uint16', 'float64',\n* 'int16', 'int16', 'float64',\n* 'uint8', 'uint8', 'float64',\n* 'int8', 'int8', 'float64'\n* ];\n*\n* // Define reference array dimensions:\n* var N = 8; // rows\n* var M = 3; // columns\n*\n* // Define a search array:\n* y1 = [\n* 'float32', 'float32', 'float32',\n* ];\n*\n* // Find the list of types:\n* var r1 = indexOfTypes( N, M, types, M, 1, 0, y1, 1, 0 );\n* // returns 1\n*\n// Define a search array:\n* y2 = [\n* 'float32', 'float32', 'float64',\n* ];\n*\n* // Find the list of types:\n* var r2 = indexOfTypes( N, M, types, M, 1, 0, y2, 1, 0 );\n* // returns -1\n*/\nfunction indexOfTypes( N, M, x, strideX1, strideX2, offsetX, y, strideY, offsetY ) { // eslint-disable-line max-len\n\tvar ix;\n\tvar iy;\n\tvar i;\n\tvar j;\n\n\t// Search for the first row which matches `y`...\n\tix = offsetX;\n\tfor ( i = 0; i < N; i++ ) {\n\t\tiy = offsetY;\n\t\tfor ( j = 0; j < M; j++ ) {\n\t\t\tif ( x[ ix+(j*strideX2) ] !== y[ iy ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tiy += strideY;\n\t\t}\n\t\t// If we successfully iterated over all columns, then that means we've found a match...\n\t\tif ( j === M ) {\n\t\t\treturn i;\n\t\t}\n\t\tix += strideX1;\n\t}\n\treturn -1;\n}\n\n\n// EXPORTS //\n\nmodule.exports = indexOfTypes;\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 isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar isPositiveInteger = require( '@stdlib/assert/is-positive-integer' );\nvar isInteger = require( '@stdlib/assert/is-integer' ).isPrimitive;\nvar isFunctionArray = require( '@stdlib/assert/is-function-array' );\nvar isFunction = require( '@stdlib/assert/is-function' );\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );\nvar format = require( '@stdlib/string/format' );\nvar getDType = require( './../../dtype' );\nvar resolveEnum = require( './../../base/dtype-resolve-enum' );\nvar indexOfTypes = require( './index_of_types.js' );\n\n\n// FUNCTIONS //\n\n/**\n* Returns a list of data type enumeration constants.\n*\n* @private\n* @param {Collection} types - list of types\n* @returns {IntegerArray} list of data type enumeration constants\n*/\nfunction types2enums( types ) {\n\tvar out;\n\tvar i;\n\n\tout = [];\n\tfor ( i = 0; i < types.length; i++ ) {\n\t\tout.push( resolveEnum( types[ i ] ) );\n\t}\n\treturn out;\n}\n\n\n// MAIN //\n\n/**\n* Returns an ndarray function interface which performs multiple dispatch.\n*\n* @param {(FunctionArray|Function)} fcns - list of ndarray functions\n* @param {Collection} types - one-dimensional list of ndarray argument data types\n* @param {(Collection|null)} data - ndarray function data (e.g., callbacks)\n* @param {PositiveInteger} nargs - total number of ndarray function interface arguments\n* @param {NonNegativeInteger} nin - number of input ndarrays\n* @param {NonNegativeInteger} nout - number of output ndarrays\n* @throws {TypeError} first argument must be either a function or an array of functions\n* @throws {TypeError} second argument must be an array-like object\n* @throws {TypeError} third argument must be an array-like object or `null`\n* @throws {Error} third and first arguments must have the same number of elements\n* @throws {TypeError} fourth argument must be a positive integer\n* @throws {TypeError} fifth argument must be a nonnegative integer\n* @throws {TypeError} sixth argument must be a nonnegative integer\n* @throws {Error} fourth argument must equal the specified number of input and output arrays\n* @throws {Error} number of types must match the number of functions times the total number of array arguments for each function\n* @throws {Error} interface must accept at least one input and/or output ndarray\n* @returns {Function} ndarray function interface\n*\n* @example\n* var unary = require( '@stdlib/ndarray/base/unary' );\n* var abs = require( '@stdlib/math/base/special/abs' );\n* var Float64Array = require( '@stdlib/array/float64' );\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n*\n* var types = [\n* 'float64', 'float64'\n* ];\n*\n* var data = [\n* abs\n* ];\n*\n* var absolute = dispatch( unary, types, data, 2, 1, 1 );\n*\n* // ...\n*\n* var xbuf = new Float64Array( [ -1.0, -2.0, -3.0, -4.0, -5.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* var x = ndarray( 'float64', xbuf, [ 5 ], [ 1 ], 0, 'row-major' );\n* var y = ndarray( 'float64', ybuf, [ 5 ], [ 1 ], 0, 'row-major' );\n*\n* absolute( x, y );\n* // ybuf => [ 1.0, 2.0, 3.0, 4.0, 5.0 ]\n*/\nfunction dispatch( fcns, types, data, nargs, nin, nout ) {\n\tvar narrays;\n\tvar nfcns;\n\tvar fcn;\n\n\tif ( isFunction( fcns ) ) {\n\t\tfcn = fcns;\n\t} else if ( !isFunctionArray( fcns ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be either a function or an array of functions. Value: `%s`.', fcns ) );\n\t}\n\tif ( !isCollection( types ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an array-like object. Value: `%s`.', types ) );\n\t}\n\tif ( !isCollection( data ) && data !== null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an array-like object or null. Value: `%s`.', data ) );\n\t}\n\tif ( !isPositiveInteger( nargs ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fourth argument must be a positive integer. Value: `%s`.', nargs ) );\n\t}\n\tif ( !isNonNegativeInteger( nin ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Fifth argument must be a nonnegative integer. Value: `%s`.', nin ) );\n\t}\n\tif ( !isNonNegativeInteger( nout ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Sixth argument must be a nonnegative integer. Value: `%s`.', nout ) );\n\t}\n\tnarrays = nin + nout;\n\tif ( narrays === 0 ) {\n\t\tthrow new Error( 'invalid arguments. Interface must accept at least one input and/or output ndarray. Based on the provided arguments, `nin+nout` equals `0`.' );\n\t}\n\tif ( nargs !== narrays ) {\n\t\tthrow new Error( 'invalid arguments. Fourth argument does not equal the number of input and output ndarrays.' );\n\t}\n\tif ( fcn ) {\n\t\tnfcns = types.length / narrays;\n\t\tif ( !isInteger( nfcns ) ) {\n\t\t\tthrow new Error( 'invalid argument. Unexpected number of types. A type must be specified for each input and output ndarray for each provided ndarray function.' );\n\t\t}\n\t} else {\n\t\tnfcns = fcns.length;\n\t\tif ( types.length !== nfcns*narrays ) {\n\t\t\tthrow new Error( 'invalid argument. Unexpected number of types. A type must be specified for each input and output ndarray for each provided ndarray function.' );\n\t\t}\n\t}\n\tif ( data && data.length !== nfcns ) {\n\t\tthrow new Error( 'invalid argument. The third argument must have the same number of elements as the first argument.' );\n\t}\n\ttypes = types2enums( types );\n\treturn dispatcher;\n\n\t/**\n\t* ndarray function interface which performs multiple dispatch.\n\t*\n\t* @private\n\t* @param {ndarrayLike} x - ndarray\n\t* @param {...ndarrayLike} args - ndarray arguments\n\t* @throws {Error} insufficient arguments\n\t* @throws {Error} too many arguments\n\t* @throws {TypeError} input array arguments must be ndarray-like objects\n\t* @throws {TypeError} output array arguments must be ndarray-like objects\n\t* @throws {TypeError} unable to resolve an ndarray function supporting the provided ndarray argument data types\n\t* @returns {(ndarrayLike|Array|void)} destination array(s)\n\t*/\n\tfunction dispatcher() {\n\t\tvar arrays;\n\t\tvar dtypes;\n\t\tvar argc;\n\t\tvar idx;\n\t\tvar v;\n\t\tvar f;\n\t\tvar i;\n\n\t\targc = arguments.length;\n\t\tif ( argc !== nargs ) {\n\t\t\tif ( argc < nargs ) {\n\t\t\t\tthrow new Error( 'invalid invocation. Insufficient arguments.' );\n\t\t\t}\n\t\t\tthrow new Error( 'invalid invocation. Too many arguments.' );\n\t\t}\n\t\tarrays = [];\n\t\tdtypes = [];\n\t\tfor ( i = 0; i < nargs; i++ ) {\n\t\t\tv = arguments[ i ];\n\t\t\tif ( !isndarrayLike( v ) ) {\n\t\t\t\tif ( i < nin ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Input array must be an ndarray-like object. Value: `%s`.', v ) );\n\t\t\t\t} else {\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Output array must be an ndarray-like object. Value: `%s`.', v ) );\n\t\t\t\t}\n\t\t\t}\n\t\t\tarrays.push( v );\n\t\t\tdtypes.push( resolveEnum( getDType( v ) ) );\n\t\t}\n\t\t// Resolve the ndarray function satisfying the input array types:\n\t\tidx = indexOfTypes( nfcns, narrays, types, narrays, 1, 0, dtypes, 1, 0 ); // eslint-disable-line max-len\n\n\t\t// Check whether we were able to successfully resolve an ndarray function:\n\t\tif ( idx < 0 ) {\n\t\t\tthrow new TypeError( 'invalid arguments. Unable to resolve an ndarray function supporting the provided array argument data types.' );\n\t\t}\n\t\t// Retrieve the ndarray function:\n\t\tif ( fcn ) {\n\t\t\tf = fcn;\n\t\t} else {\n\t\t\tf = fcns[ idx ];\n\t\t}\n\t\t// Evaluate the ndarray function:\n\t\tif ( data ) {\n\t\t\tf( arrays, data[ idx ] );\n\t\t} else {\n\t\t\tf( arrays );\n\t\t}\n\t\tif ( nout === 1 ) {\n\t\t\treturn arrays[ narrays-1 ];\n\t\t}\n\t\tif ( nout === 0 ) {\n\t\t\treturn;\n\t\t}\n\t\treturn arrays.slice( nin );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = dispatch;\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 an ndarray function interface which performs multiple dispatch.\n*\n* @module @stdlib/ndarray/dispatch\n*\n* @example\n* var dispatch = require( '@stdlib/ndarray/dispatch' );\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var unary = require( '@stdlib/ndarray/base/unary' );\n* var abs = require( '@stdlib/math/base/special/abs' );\n* var Float64Array = require( '@stdlib/array/float64' );\n*\n* var types = [\n* 'float64', 'float64'\n* ];\n*\n* var data = [\n* abs\n* ];\n*\n* var absolute = dispatch( unary, types, data, 2, 1, 1 );\n*\n* // ...\n*\n* var xbuf = new Float64Array( [ -1.0, -2.0, -3.0, -4.0, -5.0 ] );\n* var ybuf = new Float64Array( [ 0.0, 0.0, 0.0, 0.0, 0.0 ] );\n*\n* var x = ndarray( 'float64', xbuf, [ 5 ], [ 1 ], 0, 'row-major' );\n* var y = ndarray( 'float64', ybuf, [ 5 ], [ 1 ], 0, 'row-major' );\n*\n* absolute( x, y );\n* // ybuf => [ 1.0, 2.0, 3.0, 4.0, 5.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 isPlainObject = require( '@stdlib/assert/is-plain-object' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar isArrayLike = require( '@stdlib/assert/is-array-like' );\nvar shape2strides = require( './../../base/shape2strides' );\nvar strides2offset = require( './../../base/strides2offset' );\nvar emptyArray = require( '@stdlib/array/empty' );\nvar allocUnsafe = require( '@stdlib/buffer/alloc-unsafe' );\nvar numel = require( './../../base/numel' );\nvar ndarray = require( './../../ctor' );\nvar defaults = require( './../../defaults' );\nvar format = require( '@stdlib/string/format' );\n\n\n// VARIABLES //\n\nvar DTYPE = defaults.get( 'dtypes.default' );\nvar ORDER = defaults.get( 'order' );\n\n\n// MAIN //\n\n/**\n* Creates an uninitialized ndarray having a specified shape and data type.\n*\n* @param {(NonNegativeIntegerArray|NonNegativeInteger)} shape - array shape\n* @param {Options} [options] - options\n* @param {string} [options.dtype='float64'] - data type\n* @param {string} [options.order='row-major'] - array order\n* @param {string} [options.mode=\"throw\"] - specifies how to handle indices which exceed array dimensions\n* @param {StringArray} [options.submode=[\"throw\"]] - specifies how to handle subscripts which exceed array dimensions on a per dimension basis\n* @throws {TypeError} first argument must be either a nonnegative integer or an array of nonnegative integers\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} `dtype` option must be a recognized data type\n* @throws {TypeError} `order` option must be a recognized array order\n* @throws {TypeError} must provide valid options\n* @returns {ndarray} ndarray\n*\n* @example\n* var arr = empty( [ 2, 2 ] );\n* // returns \n*\n* var sh = arr.shape;\n* // returns [ 2, 2 ]\n*\n* var dt = arr.dtype;\n* // returns 'float64'\n*/\nfunction empty( shape ) {\n\tvar options;\n\tvar dtype;\n\tvar order;\n\tvar ndims;\n\tvar opts;\n\tvar buf;\n\tvar len;\n\tvar st;\n\tvar sh;\n\n\topts = {};\n\tif ( arguments.length > 1 ) {\n\t\toptions = arguments[ 1 ];\n\t\tif ( !isPlainObject( options ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t\t}\n\t\tif ( hasOwnProp( options, 'dtype' ) ) {\n\t\t\tdtype = options.dtype;\n\t\t} else {\n\t\t\tdtype = DTYPE;\n\t\t}\n\t\tif ( hasOwnProp( options, 'order' ) ) {\n\t\t\torder = options.order;\n\t\t} else {\n\t\t\torder = ORDER;\n\t\t}\n\t\tif ( hasOwnProp( options, 'mode' ) ) {\n\t\t\topts.mode = options.mode;\n\t\t}\n\t\tif ( hasOwnProp( options, 'submode' ) ) {\n\t\t\topts.submode = options.submode;\n\t\t}\n\t} else {\n\t\tdtype = DTYPE;\n\t\torder = ORDER;\n\t}\n\tif ( typeof shape === 'number' ) {\n\t\tsh = [ shape ];\n\t} else if ( isArrayLike( shape ) ) {\n\t\tsh = shape;\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be either a nonnegative integer or an array of nonnegative integers. Value: `%s`.', shape ) );\n\t}\n\tndims = sh.length;\n\tif ( ndims > 0 ) {\n\t\tlen = numel( sh );\n\t\tif ( len !== len || len < 0 ) {\n\t\t\t// We should only get here if we've been provided an invalid shape (e.g., an array containing negative integers, etc)...\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be either a nonnegative integer or an array of nonnegative integers. Value: `%s`.', shape ) );\n\t\t}\n\t\tst = shape2strides( sh, order );\n\t} else {\n\t\t// For 0-dimensional arrays, the buffer should contain a single element...\n\t\tlen = 1;\n\t\tst = [ 0 ];\n\t}\n\tif ( dtype === 'binary' ) {\n\t\tbuf = allocUnsafe( len );\n\t} else {\n\t\tbuf = emptyArray( len, dtype );\n\t}\n\treturn new ndarray( dtype, buf, sh, st, strides2offset( sh, st ), order, opts ); // eslint-disable-line max-len\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 ndarray having a specified shape and data type.\n*\n* @module @stdlib/ndarray/empty\n*\n* @example\n* var empty = require( '@stdlib/ndarray/empty' );\n*\n* var arr = empty( [ 2, 2 ], {\n* 'dtype': 'float32'\n* });\n* // returns \n*\n* var sh = arr.shape;\n* // returns [ 2, 2 ]\n*\n* var dt = arr.dtype;\n* // returns 'float32'\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 isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );\nvar isPlainObject = require( '@stdlib/assert/is-plain-object' );\nvar isNonNegativeIntegerArray = require( '@stdlib/assert/is-nonnegative-integer-array' ).primitives;\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar shape2strides = require( './../../base/shape2strides' );\nvar strides2offset = require( './../../base/strides2offset' );\nvar numel = require( './../../base/numel' );\nvar getDType = require( './../../dtype' );\nvar getShape = require( './../../shape' );\nvar getOrder = require( './../../order' );\nvar ndarray = require( './../../ctor' );\nvar emptyArray = require( '@stdlib/array/empty' );\nvar allocUnsafe = require( '@stdlib/buffer/alloc-unsafe' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Creates an uninitialized ndarray having the same shape and data type as a provided ndarray.\n*\n* @param {ndarray} x - input array\n* @param {Options} [options] - function options\n* @param {string} [options.dtype] - output array data type (overrides the input array's inferred data type)\n* @param {string} [options.order] - specifies whether the output array should be 'row-major' (C-style) or 'column-major' (Fortran-style) (overrides the input array's inferred order)\n* @param {(NonNegativeIntegerArray|NonNegativeInteger)} [options.shape] - output array shape (overrides the input array's inferred shape)\n* @param {string} [options.mode=\"throw\"] - specifies how to handle indices which exceed array dimensions\n* @param {StringArray} [options.submode=[\"throw\"]] - specifies how to handle subscripts which exceed array dimensions on a per dimension basis\n* @throws {TypeError} first argument must have a recognized data type\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} `dtype` option must be a supported ndarray data type\n* @throws {TypeError} `order` option must be a supported order\n* @throws {TypeError} `shape` option must be either a nonnegative integer or an array of nonnegative integers\n* @throws {TypeError} must provide valid options\n* @returns {ndarray} ndarray\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n*\n* var x = zeros( [ 2, 2 ] );\n* // returns \n*\n* var y = emptyLike( x );\n* // returns \n*\n* var sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* var dt = y.dtype;\n* // returns 'float64'\n*/\nfunction emptyLike( x ) {\n\tvar options;\n\tvar dtype;\n\tvar order;\n\tvar ndims;\n\tvar opts;\n\tvar buf;\n\tvar len;\n\tvar st;\n\tvar sh;\n\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray-like object. Value: `%s`.', x ) );\n\t}\n\topts = {};\n\tif ( arguments.length > 1 ) {\n\t\toptions = arguments[ 1 ];\n\t\tif ( !isPlainObject( options ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t\t}\n\t\tif ( hasOwnProp( options, 'dtype' ) ) {\n\t\t\tdtype = options.dtype;\n\t\t} else {\n\t\t\tdtype = getDType( x );\n\t\t}\n\t\tif ( hasOwnProp( options, 'shape' ) ) {\n\t\t\tsh = options.shape;\n\t\t\tif ( typeof sh === 'number' ) {\n\t\t\t\tsh = [ sh ];\n\t\t\t}\n\t\t\tif ( !isNonNegativeIntegerArray( sh ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a nonnegative integer or an array of nonnegative integers. Option: `%s`.', 'shape', sh ) );\n\t\t\t}\n\t\t} else {\n\t\t\tsh = getShape( x );\n\t\t}\n\t\tif ( hasOwnProp( options, 'order' ) ) {\n\t\t\torder = options.order;\n\t\t} else {\n\t\t\torder = getOrder( x );\n\t\t}\n\t\tif ( hasOwnProp( options, 'mode' ) ) {\n\t\t\topts.mode = options.mode;\n\t\t}\n\t\tif ( hasOwnProp( options, 'submode' ) ) {\n\t\t\topts.submode = options.submode;\n\t\t}\n\t} else {\n\t\tdtype = getDType( x );\n\t\tsh = getShape( x );\n\t\torder = getOrder( x );\n\t}\n\tndims = sh.length;\n\tif ( ndims > 0 ) {\n\t\tlen = numel( sh );\n\t\tst = shape2strides( sh, order );\n\t} else {\n\t\t// For 0-dimensional arrays, the buffer should contain a single element...\n\t\tlen = 1;\n\t\tst = [ 0 ];\n\t}\n\tif ( dtype === 'binary' ) {\n\t\tbuf = allocUnsafe( len );\n\t} else {\n\t\tbuf = emptyArray( len, dtype );\n\t}\n\treturn new ndarray( dtype, buf, sh, st, strides2offset( sh, st ), order, opts ); // eslint-disable-line max-len\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 ndarray having the same shape and data type as a provided ndarray.\n*\n* @module @stdlib/ndarray/empty-like\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n* var emptyLike = require( '@stdlib/ndarray/empty-like' );\n*\n* var x = zeros( [ 2, 2 ] );\n* // returns \n*\n* var y = emptyLike( x );\n* // returns \n*\n* var sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* var dt = y.dtype;\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Regular expression for testing whether a string is an integer string.\n*\n* @private\n* @name RE_INTEGER\n* @type {RegExp}\n*\n* @example\n* var bool = RE_INTEGER.test( '10' );\n* // returns true\n*\n* @example\n* var bool = RE_INTEGER.test( '-1' );\n* // returns true\n*\n* @example\n* var bool = RE_INTEGER.test( '0:10:2' );\n* // returns false\n*/\nvar RE_INTEGER = /^-?[0-9]+$/;\n\n\n// EXPORTS //\n\nmodule.exports = RE_INTEGER;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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* Regular expression for testing whether a string is a subsequence string.\n*\n* @private\n* @name RE_SUBSEQ\n* @type {RegExp}\n*\n* @example\n* var bool = RE_SUBSEQ.test( '0:10:2' );\n* // returns true\n*\n* @example\n* var bool = RE_SUBSEQ.test( '0' );\n* // returns false\n*\n* @example\n* var bool = RE_SUBSEQ.test( 'Slice(0,10,2)' );\n* // returns false\n*/\nvar RE_SUBSEQ = /:/;\n\n\n// EXPORTS //\n\nmodule.exports = RE_SUBSEQ;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 trim = require( '@stdlib/string/base/trim' );\nvar replace = require( '@stdlib/string/base/replace' );\nvar MultiSlice = require( '@stdlib/slice/multi' );\nvar str2multislice = require( '@stdlib/slice/base/str2multislice' );\nvar seq2multislice = require( '@stdlib/slice/base/seq2multislice' );\nvar str2slice = require( '@stdlib/slice/base/str2slice' );\nvar format = require( '@stdlib/string/format' );\nvar RE_INTEGER = require( './re_integer.js' );\nvar RE_SUBSEQ = require( './re_subseq.js' );\n\n\n// MAIN //\n\n/**\n* Converts a zero-dimensional ndarray indexing expression to a slice.\n*\n* @private\n* @param {Object} target - target object\n* @param {string} property - property name\n* @param {boolean} strict - boolean indicating whether to enforce strict bounds checking\n* @throws {Error} invalid slice operation\n* @throws {RangeError} number of slice dimensions must match the number of array dimensions\n* @returns {MultiSlice} multi-slice object\n*/\nfunction prop2slice( target, property ) {\n\tvar shape;\n\tvar prop;\n\tvar ch;\n\tvar s;\n\n\tprop = trim( property );\n\n\t// Retrieve the first character in order to to detect how a slice operation was specified:\n\tch = prop[ 0 ];\n\n\t// Case: slice\n\tif ( ch === 'S' ) {\n\t\t// Convert the string to a slice object:\n\t\ts = str2slice( property );\n\t\tif ( s === null ) {\n\t\t\tthrow new Error( format( 'invalid operation. Unsupported slice operation. Value: `%s`.', property ) );\n\t\t}\n\t\t// Create a multi-slice:\n\t\ts = new MultiSlice( s );\n\t}\n\t// Case: multi-slice\n\telse if ( ch === 'M' ) {\n\t\t// Convert the string to a slice object:\n\t\ts = str2multislice( prop );\n\t\tif ( s === null ) {\n\t\t\tthrow new Error( format( 'invalid operation. Unsupported slice operation. Value: `%s`.', property ) );\n\t\t}\n\t}\n\t// Case: integer\n\telse if ( RE_INTEGER.test( prop ) ) {\n\t\t// Convert the string to a numeric value:\n\t\ts = parseInt( prop, 10 );\n\n\t\t// Create a multi-slice:\n\t\ts = new MultiSlice( s );\n\t}\n\t// Case: subsequence string (e.g., ':10,1,::-1,:,-5,2::3')\n\telse if ( RE_SUBSEQ.test( prop ) ) {\n\t\tshape = target.shape;\n\t\ts = seq2multislice( prop, shape, true );\n\t\tif ( s.code ) {\n\t\t\tif ( s.code === 'ERR_SLICE_INVALID_INCREMENT' ) {\n\t\t\t\tthrow new Error( format( 'invalid operation. A subsequence increment must be a non-zero integer. Value: `%s`.', property ) );\n\t\t\t}\n\t\t\tif ( s.code === 'ERR_SLICE_INVALID_ELLIPSIS' ) {\n\t\t\t\tthrow new Error( format( 'invalid operation. A subsequence may only include a single ellipsis. Value: `%s`.', property ) );\n\t\t\t}\n\t\t\tif ( s.code === 'ERR_SLICE_INVALID_SUBSEQUENCE' ) {\n\t\t\t\tthrow new Error( format( 'invalid operation. Unsupported slice operation. Value: `%s`.', property ) );\n\t\t\t}\n\t\t\t// s.code === 'ERR_SLICE_TOO_MANY_DIMENSIONS'\n\t\t\tthrow new RangeError( format( 'invalid operation. Number of slice dimensions does not match the number of array dimensions. Array shape: (%s). Slice dimensions: %u.', shape.join( ',' ), replace( prop, /\\.\\.\\.,/, '' ).split( ',' ).length ) );\n\t\t}\n\t}\n\t// Case: empty string or ellipsis\n\telse if ( prop.length === 0 || prop === '...' ) {\n\t\ts = new MultiSlice();\n\t}\n\t// Case: non-empty string\n\telse {\n\t\tthrow new Error( format( 'invalid operation. Unsupported slice operation. Value: `%s`.', property ) );\n\t}\n\treturn s;\n}\n\n\n// EXPORTS //\n\nmodule.exports = prop2slice;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 trim = require( '@stdlib/string/base/trim' );\nvar replace = require( '@stdlib/string/base/replace' );\nvar MultiSlice = require( '@stdlib/slice/multi' );\nvar str2multislice = require( '@stdlib/slice/base/str2multislice' );\nvar seq2multislice = require( '@stdlib/slice/base/seq2multislice' );\nvar str2slice = require( '@stdlib/slice/base/str2slice' );\nvar format = require( '@stdlib/string/format' );\nvar RE_INTEGER = require( './re_integer.js' );\n\n\n// MAIN //\n\n/**\n* Converts a one-dimensional ndarray indexing expression to a slice.\n*\n* @private\n* @param {Object} target - target object\n* @param {string} property - property name\n* @param {boolean} strict - boolean indicating whether to enforce strict bounds checking\n* @throws {Error} invalid slice operation\n* @throws {RangeError} number of slice dimensions must match the number of array dimensions\n* @returns {MultiSlice} multi-slice object\n*/\nfunction prop2slice( target, property, strict ) {\n\tvar shape;\n\tvar prop;\n\tvar ch;\n\tvar s;\n\n\tprop = trim( property );\n\n\t// Retrieve the first character in order to to detect how a slice operation was specified:\n\tch = prop[ 0 ];\n\n\t// Case: slice\n\tif ( ch === 'S' ) {\n\t\t// Convert the string to a slice object:\n\t\ts = str2slice( property );\n\t\tif ( s === null ) {\n\t\t\tthrow new Error( format( 'invalid operation. Unsupported slice operation. Value: `%s`.', property ) );\n\t\t}\n\t\t// Create a multi-slice:\n\t\ts = new MultiSlice( s );\n\t}\n\t// Case: multi-slice\n\telse if ( ch === 'M' ) {\n\t\t// Convert the string to a slice object:\n\t\ts = str2multislice( prop );\n\t\tif ( s === null ) {\n\t\t\tthrow new Error( format( 'invalid operation. Unsupported slice operation. Value: `%s`.', property ) );\n\t\t}\n\t}\n\t// Case: integer\n\telse if ( RE_INTEGER.test( prop ) ) {\n\t\t// Convert the string to a numeric value:\n\t\ts = parseInt( prop, 10 );\n\n\t\t// Create a multi-slice:\n\t\ts = new MultiSlice( s );\n\t}\n\t// Case: subsequence string\n\telse if ( prop.length > 0 ) {\n\t\tshape = target.shape;\n\t\ts = seq2multislice( prop, shape, true );\n\t\tif ( s.code ) {\n\t\t\tif ( s.code === 'ERR_SLICE_INVALID_INCREMENT' ) {\n\t\t\t\tthrow new Error( format( 'invalid operation. A subsequence increment must be a non-zero integer. Value: `%s`.', property ) );\n\t\t\t}\n\t\t\tif ( s.code === 'ERR_SLICE_INVALID_ELLIPSIS' ) {\n\t\t\t\tthrow new Error( format( 'invalid operation. A subsequence may only include a single ellipsis. Value: `%s`.', property ) );\n\t\t\t}\n\t\t\tif ( s.code === 'ERR_SLICE_INVALID_SUBSEQUENCE' ) {\n\t\t\t\tthrow new Error( format( 'invalid operation. Unsupported slice operation. Value: `%s`.', property ) );\n\t\t\t}\n\t\t\tif ( s.code === 'ERR_SLICE_TOO_MANY_DIMENSIONS' ) {\n\t\t\t\tthrow new RangeError( format( 'invalid operation. Number of slice dimensions does not match the number of array dimensions. Array shape: (%s). Slice dimensions: %u.', target.shape.join( ',' ), replace( prop, /\\.\\.\\.,/, '' ).split( ',' ).length ) );\n\t\t\t}\n\t\t\t// NOTE: the following error check must come last due to fall-through when in non-strict mode...\n\t\t\tif ( s.code === 'ERR_SLICE_OUT_OF_BOUNDS' ) {\n\t\t\t\tif ( strict ) {\n\t\t\t\t\tthrow new RangeError( format( 'invalid operation. Slice exceeds array bounds. Array shape: (%s).', shape.join( ',' ) ) );\n\t\t\t\t}\n\t\t\t\t// Repeat parsing, this time allowing for out-of-bounds slices:\n\t\t\t\ts = seq2multislice( prop, shape, false );\n\t\t\t}\n\t\t}\n\t}\n\t// Case: empty string\n\telse {\n\t\tthrow new RangeError( format( 'invalid operation. Number of slice dimensions does not match the number of array dimensions. Array shape: (%s). Slice dimensions: %u.', target.shape.join( ',' ), 0 ) );\n\t}\n\treturn s;\n}\n\n\n// EXPORTS //\n\nmodule.exports = prop2slice;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 trim = require( '@stdlib/string/base/trim' );\nvar str2multislice = require( '@stdlib/slice/base/str2multislice' );\nvar seq2multislice = require( '@stdlib/slice/base/seq2multislice' );\nvar sargs2multislice = require( '@stdlib/slice/base/sargs2multislice' );\nvar format = require( '@stdlib/string/format' );\nvar RE_SUBSEQ = require( './re_subseq.js' );\n\n\n// MAIN //\n\n/**\n* Converts an n-dimensional ndarray indexing expression to a slice.\n*\n* @private\n* @param {Object} target - target object\n* @param {string} property - property name\n* @param {boolean} strict - boolean indicating whether to enforce strict bounds checking\n* @throws {Error} invalid slice operation\n* @throws {RangeError} number of slice dimensions must match the number of array dimensions\n* @returns {MultiSlice} multi-slice object\n*/\nfunction prop2slice( target, property, strict ) {\n\tvar shape;\n\tvar prop;\n\tvar ch;\n\tvar s;\n\n\tprop = trim( property );\n\n\t// Retrieve the first character in order to to detect how a slice operation was specified:\n\tch = prop[ 0 ];\n\n\t// Case: multi-slice (e.g., 'MultiSlice(Slice(0,10,2),null,2,Slice(10,5,-1))')\n\tif ( ch === 'M' ) {\n\t\ts = str2multislice( prop );\n\t\tif ( s === null ) {\n\t\t\tthrow new Error( format( 'invalid operation. Unsupported slice operation. Value: `%s`.', property ) );\n\t\t}\n\t}\n\t// Case: subsequence string (e.g., '...' or ':10,1,::-1,:,-5,2::3')\n\telse if ( RE_SUBSEQ.test( prop ) || prop === '...' ) {\n\t\tshape = target.shape;\n\t\ts = seq2multislice( prop, shape, true );\n\t\tif ( s.code ) {\n\t\t\tif ( s.code === 'ERR_SLICE_INVALID_INCREMENT' ) {\n\t\t\t\tthrow new Error( format( 'invalid operation. A subsequence increment must be a non-zero integer. Value: `%s`.', property ) );\n\t\t\t}\n\t\t\tif ( s.code === 'ERR_SLICE_INVALID_ELLIPSIS' ) {\n\t\t\t\tthrow new Error( format( 'invalid operation. A subsequence may only include a single ellipsis. Value: `%s`.', property ) );\n\t\t\t}\n\t\t\tif ( s.code === 'ERR_SLICE_INVALID_SUBSEQUENCE' ) {\n\t\t\t\tthrow new Error( format( 'invalid operation. Unsupported slice operation. Value: `%s`.', property ) );\n\t\t\t}\n\t\t\t// NOTE: the following error check must come last due to fall-through when in non-strict mode...\n\t\t\tif ( s.code === 'ERR_SLICE_OUT_OF_BOUNDS' ) {\n\t\t\t\tif ( strict ) {\n\t\t\t\t\tthrow new RangeError( format( 'invalid operation. Slice exceeds array bounds. Array shape: (%s).', shape.join( ',' ) ) );\n\t\t\t\t}\n\t\t\t\t// Repeat parsing, this time allowing for out-of-bounds slices:\n\t\t\t\ts = seq2multislice( prop, shape, false );\n\t\t\t}\n\t\t}\n\t}\n\t// Case: array syntax (e.g., [ Slice(0,10,1), null, Slice(4,null,-1) ]) or Slice or integer or arbitrary string (where the latter three are not valid for >2d arrays)\n\telse {\n\t\ts = sargs2multislice( prop );\n\t\tif ( s === null ) {\n\t\t\tthrow new Error( format( 'invalid operation. Unsupported slice operation. Value: `%s`.', property ) );\n\t\t}\n\t}\n\treturn s;\n}\n\n\n// EXPORTS //\n\nmodule.exports = prop2slice;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 propertiesIn = require( '@stdlib/utils/properties-in' );\nvar contains = require( '@stdlib/array/base/assert/contains' ).factory;\nvar ndarray = require( './../../ctor' );\nvar defaults = require( './../../defaults' );\n\n\n// MAIN //\n\n/**\n* Tests whether a property name exists on the parent prototype.\n*\n* @private\n* @name hasProperty\n* @type {Function}\n* @param {(string|symbol)} name - property name\n* @returns {boolean} boolean indicating whether the property exists on the parent prototype\n*\n* @example\n* var bool = hasProperty( 'get' );\n* // returns true\n*\n* bool = hasProperty( 'foo' );\n* // returns false\n*/\nvar hasProperty = contains( propertiesIn( new ndarray( 'generic', [ 0 ], [], [ 0 ], 0, defaults.get( 'order' ) ) ) );\n\n\n// EXPORTS //\n\nmodule.exports = hasProperty;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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' );\n\n\n// MAIN //\n\n/**\n* Returns the property value associated with a specified property.\n*\n* @private\n* @param {Object} target - target object\n* @param {(string|symbol)} property - property\n* @param {Object} receiver - the proxy object or an object inheriting from the proxy\n* @returns {*} result\n*/\nfunction getValue( target, property, receiver ) {\n\tvar value = target[ property ];\n\tif ( isFunction( value ) ) {\n\t\treturn wrapper;\n\t}\n\treturn value;\n\n\t/**\n\t* Method wrapper.\n\t*\n\t* @private\n\t* @returns {*} results\n\t*/\n\tfunction wrapper() {\n\t\tvar args;\n\t\tvar i;\n\n\t\targs = [];\n\t\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\t\targs.push( arguments[ i ] );\n\t\t}\n\t\treturn value.apply( ( this === receiver ) ? target : this, args ); // eslint-disable-line no-invalid-this\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = getValue;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 replace = require( '@stdlib/string/base/replace' );\n\n\n// MAIN //\n\n/**\n* Returns an updated error message for trapped errors.\n*\n* @private\n* @param {string} msg - error message\n* @returns {string} updated message\n*/\nfunction errMessage( msg ) {\n\treturn replace( msg, /^invalid argument/, 'invalid operation' );\n}\n\n\n// EXPORTS //\n\nmodule.exports = errMessage;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 isRangeError = require( '@stdlib/assert/is-range-error' );\nvar isTypeError = require( '@stdlib/assert/is-type-error' );\nvar isSyntaxError = require( '@stdlib/assert/is-syntax-error' );\n\n\n// MAIN //\n\n/**\n* Returns the error constructor for a provided error object.\n*\n* @private\n* @param {Error} err - error object\n* @returns {Function} error constructor\n*/\nfunction errConstructor( err ) {\n\tif ( isRangeError( err ) ) {\n\t\treturn RangeError;\n\t}\n\tif ( isTypeError( err ) ) {\n\t\treturn TypeError;\n\t}\n\tif ( isSyntaxError( err ) ) {\n\t\treturn SyntaxError;\n\t}\n\treturn Error;\n}\n\n\n// EXPORTS //\n\nmodule.exports = errConstructor;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 slice = require( './../../base/slice' );\nvar errMessage = require( './error_message.js' );\nvar errConstructor = require( './error_constructor.js' );\n\n\n// MAIN //\n\n/**\n* Returns an ndarray view.\n*\n* @private\n* @param {Object} target - target object\n* @param {string} property - property name\n* @param {Object} receiver - the proxy object or an object inheriting from the proxy\n* @param {Function} prop2slice - function for converting an indexing expression to a slice\n* @throws {Error} invalid slice operation\n* @throws {RangeError} number of slice dimensions must match the number of array dimensions\n* @returns {FancyArray} result\n*/\nfunction getSlice( target, property, receiver, prop2slice ) { // eslint-disable-line stdlib/jsdoc-require-throws-tags\n\tvar strict;\n\tvar E;\n\tvar s;\n\n\tstrict = false; // TODO: support strict mode\n\ts = prop2slice( target, property, strict );\n\ttry {\n\t\treturn slice( receiver, s, strict, false );\n\t} catch ( err ) {\n\t\tE = errConstructor( err );\n\t\tthrow new E( errMessage( err.message ) );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = getSlice;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 hasProperty = require( './has_property.js' );\nvar getValue = require( './get_value.js' );\nvar getSlice = require( './get_slice.js' );\n\n\n// MAIN //\n\n/**\n* Returns a trap for retrieving property values.\n*\n* @private\n* @param {Function} prop2slice - function for converting an indexing expression to a slice\n* @returns {Function} handler\n*/\nfunction factory( prop2slice ) {\n\treturn get;\n\n\t/**\n\t* Trap for retrieving property values.\n\t*\n\t* @private\n\t* @param {Object} target - target object\n\t* @param {(string|symbol)} property - property name\n\t* @param {Object} receiver - the proxy object or an object inheriting from the proxy\n\t* @throws {Error} invalid slice operation\n\t* @throws {RangeError} number of slice dimensions must match the number of array dimensions\n\t* @returns {*} result\n\t*/\n\tfunction get( target, property, receiver ) {\n\t\tif ( hasProperty( property ) ) {\n\t\t\treturn getValue( target, property, receiver );\n\t\t}\n\t\treturn getSlice( target, property, receiver, prop2slice );\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// MAIN //\n\n/**\n* Sets the value associated with a specified property.\n*\n* @private\n* @param {Object} target - target object\n* @param {string} property - property\n* @param {*} value - new value\n* @param {Object} receiver - the proxy object or an object inheriting from the proxy\n* @returns {boolean} boolean indicating whether assignment succeeded\n*/\nfunction setValue( target, property, value ) {\n\ttarget[ property ] = value;\n\treturn true;\n}\n\n\n// EXPORTS //\n\nmodule.exports = setValue;\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 ndarray data type of the closest \"kind\" necessary for storing a provided scalar.\n*\n* @private\n* @param {number} value - real value\n* @returns {string} ndarray 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 ndarray data type of the closest \"kind\" necessary for storing a provided scalar value.\n*\n* @param {*} value - scalar value\n* @returns {string} ndarray 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, given that 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 ndarray data type of the closest \"kind\" necessary for storing a provided scalar value.\n*\n* @module @stdlib/ndarray/min-dtype\n*\n* @example\n* var minDataType = require( '@stdlib/ndarray/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) 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 hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar isPlainObject = require( '@stdlib/assert/is-plain-object' );\nvar isNumber = require( '@stdlib/assert/is-number' ).isPrimitive;\nvar isComplexLike = require( '@stdlib/assert/is-complex-like' );\nvar isAccessorArray = require( '@stdlib/array/base/assert/is-accessor-array' );\nvar accessorSetter = require( '@stdlib/array/base/accessor-setter' );\nvar setter = require( '@stdlib/array/base/setter' );\nvar buffer = require( './../../base/buffer' );\nvar ndarray = require( './../../ctor' );\nvar defaults = require( './../../defaults' );\nvar format = require( '@stdlib/string/format' );\n\n\n// VARIABLES //\n\nvar ORDER = defaults.get( 'order' );\n\n\n// MAIN //\n\n/**\n* Returns a zero-dimensional ndarray containing a provided scalar value.\n*\n* ## Notes\n*\n* - If a `dtype` option is not provided and `value`\n*\n* - is a `number`, the default data type is `'float64'`.\n* - is a complex number object, the default data type is `'complex128'`.\n* - is any other value type, the default data type is `'generic'`.\n*\n* @param {*} value - scalar value\n* @param {Options} [options] - function options\n* @param {string} [options.dtype] - output array data type\n* @param {string} [options.order=\"row-major\"] - memory layout (either row-major or column-major)\n* @param {boolean} [options.readonly=false] - boolean indicating whether an array should be read-only\n* @throws {TypeError} second argument must be an object\n* @throws {TypeError} `dtype` option must be a recognized data type\n* @returns {ndarray} ndarray\n*\n* @example\n* var x = scalar2ndarray( 1.0 );\n* // returns \n*\n* var sh = x.shape;\n* // returns []\n*\n* var dt = x.dtype;\n* // returns 'float64'\n*\n* var v = x.get();\n* // returns 1.0\n*\n* @example\n* var x = scalar2ndarray( 1.0, {\n* 'dtype': 'float32'\n* });\n* // returns \n*\n* var sh = x.shape;\n* // returns []\n*\n* var dt = x.dtype;\n* // returns 'float32'\n*\n* var v = x.get();\n* // returns 1.0\n*/\nfunction scalar2ndarray( value ) {\n\tvar options;\n\tvar opts;\n\tvar buf;\n\tvar flg;\n\tvar set;\n\tvar dt;\n\tvar v;\n\n\topts = {\n\t\t'dtype': '',\n\t\t'order': ORDER,\n\t\t'readonly': false\n\t};\n\tif ( arguments.length > 1 ) {\n\t\toptions = arguments[ 1 ];\n\t\tif ( !isPlainObject( options ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t\t}\n\t\tif ( hasOwnProp( options, 'dtype' ) ) {\n\t\t\topts.dtype = options.dtype;\n\t\t}\n\t\tif ( hasOwnProp( options, 'order' ) ) {\n\t\t\topts.order = options.order;\n\t\t}\n\t\tif ( hasOwnProp( options, 'readonly' ) ) {\n\t\t\topts.readonly = options.readonly;\n\t\t}\n\t}\n\tflg = isNumber( value );\n\tif ( opts.dtype === '' ) {\n\t\tif ( flg ) {\n\t\t\tdt = 'float64';\n\t\t} else if ( isComplexLike( value ) ) {\n\t\t\tdt = 'complex128';\n\t\t} else {\n\t\t\tdt = 'generic';\n\t\t}\n\t} else {\n\t\tdt = opts.dtype;\n\t}\n\tbuf = buffer( dt, 1 );\n\tif ( buf === null ) {\n\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a recognized data type. Option: `%s`.', 'dtype', dt ) );\n\t}\n\tif ( /^complex/.test( dt ) && flg ) {\n\t\tv = [ value, 0.0 ]; // note: we're assuming that the ComplexXXArray setter accepts an array of interleaved real and imaginary components\n\t} else {\n\t\tv = value;\n\t}\n\tif ( isAccessorArray( buf ) ) {\n\t\tset = accessorSetter( dt );\n\t} else {\n\t\tset = setter( dt );\n\t}\n\tset( buf, 0, v );\n\treturn new ndarray( dt, buf, [], [ 0 ], 0, opts.order, opts );\n}\n\n\n// EXPORTS //\n\nmodule.exports = scalar2ndarray;\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 a scalar value to a zero-dimensional ndarray.\n*\n* @module @stdlib/ndarray/from-scalar\n*\n* @example\n* var scalar2ndarray = require( '@stdlib/ndarray/from-scalar' );\n*\n* var x = scalar2ndarray( 1.0 );\n* // returns \n*\n* var sh = x.shape;\n* // returns []\n*\n* var dt = x.dtype;\n* // returns 'float64'\n*\n* var v = x.get();\n* // returns 1.0\n*\n* @example\n* var scalar2ndarray = require( '@stdlib/ndarray/from-scalar' );\n*\n* var x = scalar2ndarray( 1.0, {\n* 'dtype': 'float32'\n* });\n* // returns \n*\n* var sh = x.shape;\n* // returns []\n*\n* var dt = x.dtype;\n* // returns 'float32'\n*\n* var v = x.get();\n* // returns 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 sliceAssign = require( './../../base/slice-assign' );\nvar isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );\nvar isNumber = require( '@stdlib/assert/is-number' ).isPrimitive;\nvar isInteger = require( '@stdlib/assert/is-integer' ).isPrimitive;\nvar isComplexLike = require( '@stdlib/assert/is-complex-like' );\nvar isComplexDataType = require( './../../base/assert/is-complex-floating-point-data-type' );\nvar isFloatingDataType = require( './../../base/assert/is-floating-point-data-type' );\nvar isUnsignedIntegerDataType = require( './../../base/assert/is-unsigned-integer-data-type' );\nvar isSignedIntegerDataType = require( './../../base/assert/is-signed-integer-data-type' );\nvar isSafeCast = require( './../../base/assert/is-safe-data-type-cast' );\nvar INT8_MAX = require( '@stdlib/constants/int8/max' );\nvar INT16_MAX = require( '@stdlib/constants/int16/max' );\nvar INT32_MAX = require( '@stdlib/constants/int32/max' );\nvar minDataType = require( './../../min-dtype' );\nvar complexDataType = require( '@stdlib/complex/dtype' );\nvar scalar2ndarray = require( './../../from-scalar' );\nvar format = require( '@stdlib/string/format' );\nvar errMessage = require( './error_message.js' );\nvar errConstructor = require( './error_constructor.js' );\n\n\n// FUNCTIONS //\n\n/**\n* Returns an options object for creating an ndarray from a scalar value.\n*\n* @private\n* @param {string} dtype - output array data type\n* @returns {Object} options\n*/\nfunction options( dtype ) {\n\treturn {\n\t\t'dtype': dtype\n\t};\n}\n\n\n// MAIN //\n\n/**\n* Sets element values belonging to the ndarray view specified by an indexing expression.\n*\n* @private\n* @param {Object} target - target object\n* @param {string} property - indexing expression\n* @param {*} value - new value\n* @param {Object} receiver - the proxy object or an object inheriting from the proxy\n* @param {Function} prop2slice - function for converting an indexing expression to a slice\n* @throws {Error} invalid slice operation\n* @throws {RangeError} number of slice dimensions must match the number of array dimensions\n* @throws {Error} assigned value must be broadcast compatible with target array view\n* @throws {TypeError} assigned value cannot be safely cast to the target array data type\n* @throws {TypeError} target array must have a supported data type\n* @returns {boolean} boolean indicating whether assignment succeeded\n*/\nfunction setSlice( target, property, value, receiver, prop2slice ) { // eslint-disable-line stdlib/jsdoc-require-throws-tags\n\tvar strict;\n\tvar vdt;\n\tvar dt;\n\tvar E;\n\tvar s;\n\n\tif ( !isndarrayLike( value ) ) {\n\t\tdt = target.dtype;\n\n\t\t// If the target array data type is \"generic\", we can just go ahead and \"cast\" to the target array data type...\n\t\tif ( dt === 'generic' ) {\n\t\t\tvalue = scalar2ndarray( value, options( dt ) );\n\t\t}\n\t\t// If the input value is real-valued number, we need to inspect the value to determine whether we can safely cast the value to the target array data type...\n\t\telse if ( isNumber( value ) ) {\n\t\t\t// If the target array has a floating-point data type, we can just go ahead and cast the input scalar to the target array data type...\n\t\t\tif ( isFloatingDataType( dt ) ) {\n\t\t\t\tvalue = scalar2ndarray( value, options( dt ) );\n\t\t\t}\n\t\t\t// If the target array has an unsigned integer data type, then the assigned value must be a compatible nonnegative integer value...\n\t\t\telse if ( isUnsignedIntegerDataType( dt ) ) {\n\t\t\t\tvdt = minDataType( value );\n\t\t\t\tif ( isSafeCast( vdt, dt ) ) {\n\t\t\t\t\tvalue = scalar2ndarray( value, options( dt ) );\n\t\t\t\t} else {\n\t\t\t\t\tthrow new TypeError( format( 'invalid operation. Assigned value cannot be safely cast to the target array data type. Data types: [%s, %s].', vdt, dt ) );\n\t\t\t\t}\n\t\t\t}\n\t\t\t// If the target array has a signed integer data type, then the assigned value must be a compatible integer value...\n\t\t\telse if ( isSignedIntegerDataType( dt ) ) {\n\t\t\t\tif ( !isInteger( value ) ) {\n\t\t\t\t\tthrow new TypeError( format( 'invalid operation. Assigned value cannot be safely cast to the target array data type. Data types: [%s, %s].', minDataType( value ), dt ) );\n\t\t\t\t}\n\t\t\t\t// Manually resolve the minimum data type of the closest \"kind\" necessary for storing a scalar value, as `minDataType()` defaults to unsigned integer data types when a scalar value is greater than or equal to zero...\n\t\t\t\tif ( value < 0 ) {\n\t\t\t\t\tvdt = minDataType( value );\n\t\t\t\t} else if ( value <= INT8_MAX ) { // TODO: consider moving this logic to `@stdlib/ndarray/base/min-signed-intger-dtype` where the interface can assume that `value` is integer-valued\n\t\t\t\t\tvdt = 'int8';\n\t\t\t\t} else if ( value <= INT16_MAX ) {\n\t\t\t\t\tvdt = 'int16';\n\t\t\t\t} else if ( value <= INT32_MAX ) {\n\t\t\t\t\tvdt = 'int32';\n\t\t\t\t} else {\n\t\t\t\t\tvdt = 'float64';\n\t\t\t\t}\n\t\t\t\tif ( isSafeCast( vdt, dt ) ) {\n\t\t\t\t\tvalue = scalar2ndarray( value, options( dt ) );\n\t\t\t\t} else {\n\t\t\t\t\tthrow new TypeError( format( 'invalid operation. Assigned value cannot be safely cast to the target array data type. Data types: [%s, %s].', vdt, dt ) );\n\t\t\t\t}\n\t\t\t}\n\t\t\t// If the target array has \"binary\" data type, then the assigned value must be a compatible nonnegative integer value...\n\t\t\telse if ( dt === 'binary' ) {\n\t\t\t\tvdt = minDataType( value );\n\t\t\t\tif ( vdt === 'uint8' ) {\n\t\t\t\t\tvalue = scalar2ndarray( value, options( dt ) );\n\t\t\t\t} else {\n\t\t\t\t\tthrow new TypeError( format( 'invalid operation. Assigned value cannot be safely cast to the target array data type. Data types: [%s, %s].', vdt, dt ) );\n\t\t\t\t}\n\t\t\t}\n\t\t\t// If we reach this point, we must be dealing with an unexpected target array data type...\n\t\t\telse {\n\t\t\t\t// Raise an exception in order to flag that, in order to perform assignment, we need to add explicit support for additional data types:\n\t\t\t\tthrow new TypeError( format( 'invalid operation. Unsupported target array data type. Data type: `%s`.', dt ) );\n\t\t\t}\n\t\t}\n\t\t// If the target array is not \"generic\" and the input value is a complex number, then the target array data type must also have a complex number data type...\n\t\telse if ( isComplexLike( value ) ) {\n\t\t\tif ( !isComplexDataType( dt ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid operation. Assigned value cannot be safely cast to the target array data type. Data types: [%s, %s].', complexDataType( value ), dt ) );\n\t\t\t}\n\t\t\tvalue = scalar2ndarray( value, options( dt ) );\n\t\t}\n\t\t// If the target array is not \"generic\" and the input value is neither a real- or complex-valued number, raise an exception in order to flag that, in order to perform assignment, we need to add explicit support for additional data types...\n\t\telse {\n\t\t\tthrow new TypeError( format( 'invalid operation. Assigned value cannot be safely cast to the target array data type. Data types: [%s, %s].', typeof value, dt ) );\n\t\t}\n\t}\n\tstrict = false; // TODO: support strict mode\n\ts = prop2slice( target, property, strict );\n\ttry {\n\t\tsliceAssign( value, receiver, s, strict );\n\t\treturn true;\n\t} catch ( err ) {\n\t\tE = errConstructor( err );\n\t\tthrow new E( errMessage( err.message ) );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = setSlice;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 hasProperty = require( './has_property.js' );\nvar setValue = require( './set_value.js' );\nvar setSlice = require( './set_slice.js' );\n\n\n// MAIN //\n\n/**\n* Returns a trap for setting property values.\n*\n* @private\n* @param {Function} prop2slice - function for converting an indexing expression to a slice\n* @returns {Function} handler\n*/\nfunction factory( prop2slice ) {\n\treturn set;\n\n\t/**\n\t* Trap for setting property values.\n\t*\n\t* @private\n\t* @param {Object} target - target object\n\t* @param {(string|symbol)} property - property name\n\t* @param {*} value - new value\n\t* @param {Object} receiver - the proxy object or an object inheriting from the proxy\n\t* @throws {Error} invalid slice operation\n\t* @throws {RangeError} number of slice dimensions must match the number of array dimensions\n\t* @throws {Error} assigned value must be broadcast compatible with output array view\n\t* @throws {TypeError} assigned value cannot be safely cast to the output array data type\n\t* @returns {boolean} boolean indicating whether assignment succeeded\n\t*/\n\tfunction set( target, property, value, receiver ) {\n\t\tif ( hasProperty( property ) ) {\n\t\t\treturn setValue( target, property, value );\n\t\t}\n\t\treturn setSlice( target, property, value, receiver, prop2slice );\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/* eslint-disable max-len */\n\n'use strict';\n\n// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar parent = require( './../../ctor' ); // eslint-disable-line stdlib/no-redeclare\nvar inherit = require( '@stdlib/utils/inherit' );\nvar Proxy = require( '@stdlib/proxy/ctor' );\nvar prop2slice0d = require( './prop2slice.0d.js' );\nvar prop2slice1d = require( './prop2slice.1d.js' );\nvar prop2slicend = require( './prop2slice.nd.js' );\nvar get = require( './get.js' );\nvar set = require( './set.js' );\n\n\n// VARIABLES //\n\nvar get0d = get( prop2slice0d );\nvar set0d = set( prop2slice0d );\nvar get1d = get( prop2slice1d );\nvar set1d = set( prop2slice1d );\nvar getnd = get( prop2slicend );\nvar setnd = set( prop2slicend );\n\n\n// MAIN //\n\n/**\n* Fancy ndarray constructor.\n*\n* @constructor\n* @param {string} dtype - data type\n* @param {Collection} buffer - data buffer\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {IntegerArray} strides - array strides\n* @param {NonNegativeInteger} offset - index offset\n* @param {string} order - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @param {Options} [options] - function options\n* @param {string} [options.mode=\"throw\"] - specifies how to handle indices which exceed array dimensions\n* @param {StringArray} [options.submode=[\"throw\"]] - specifies how to handle subscripts which exceed array dimensions on a per dimension basis\n* @param {boolean} [options.readonly=false] - boolean indicating whether an array should be read-only\n* @throws {TypeError} `dtype` argument must be a supported ndarray data type\n* @throws {TypeError} `buffer` argument must be an array-like object, typed-array-like, or a Buffer\n* @throws {TypeError} `buffer` argument `get` and `set` properties must be functions\n* @throws {TypeError} `shape` argument must be an array-like object containing nonnegative integers\n* @throws {Error} `shape` argument length must equal the number of dimensions\n* @throws {TypeError} `strides` argument must be an array-like object containing integers\n* @throws {Error} `strides` argument length must equal the number of dimensions (except for zero-dimensional arrays; in which case, the `strides` argument length must be equal to `1`)\n* @throws {Error} for zero-dimensional ndarrays, the `strides` argument must contain a single element equal to `0`\n* @throws {TypeError} `offset` argument must be a nonnegative integer\n* @throws {TypeError} `order` argument must be a supported ndarray order\n* @throws {Error} `buffer` argument must be compatible with specified meta data\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {RangeError} too many dimensions\n* @returns {FancyArray} FancyArray instance\n*\n* @example\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var out = new FancyArray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*/\nfunction FancyArray( dtype, buffer, shape, strides, offset, order, options ) {\n\tvar handlers;\n\tvar nargs;\n\tvar ndims;\n\n\tnargs = arguments.length;\n\tif ( !( this instanceof FancyArray ) ) {\n\t\tif ( nargs < 7 ) {\n\t\t\treturn new FancyArray( dtype, buffer, shape, strides, offset, order );\n\t\t}\n\t\treturn new FancyArray( dtype, buffer, shape, strides, offset, order, options );\n\t}\n\t// Call the parent constructor:\n\tparent.call( this, dtype, buffer, shape, strides, offset, order, ( nargs < 7 ) ? {} : options );\n\n\tif ( Proxy ) { // NOTE: cannot use `@stdlib/assert/has-proxy-support` here, as that API uses code evaluation and might violate CSPs\n\t\tndims = shape.length;\n\t\thandlers = {};\n\t\tif ( ndims === 0 ) {\n\t\t\thandlers.get = get0d;\n\t\t\thandlers.set = set0d;\n\t\t} else if ( ndims === 1 ) {\n\t\t\thandlers.get = get1d;\n\t\t\thandlers.set = set1d;\n\t\t} else {\n\t\t\thandlers.get = getnd;\n\t\t\thandlers.set = setnd;\n\t\t}\n\t\treturn new Proxy( this, handlers );\n\t}\n\t// TODO: replace with `@stdlib/console/warn` (or equivalent once available)\n\tconsole.warn( 'WARNING: Proxy objects are not supported in the current environment. Some `FancyArray` functionality may not be available.' ); // eslint-disable-line no-console\n\treturn this;\n}\n\n// Inherit from the parent constructor:\ninherit( FancyArray, parent );\n\n/**\n* Constructor name.\n*\n* @name name\n* @memberof FancyArray\n* @type {string}\n* @default 'ndarray'\n*\n* @example\n* var str = FancyArray.name;\n* // returns 'ndarray'\n*/\nsetReadOnly( FancyArray, 'name', 'ndarray' );\n\n\n// EXPORTS //\n\nmodule.exports = FancyArray;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Fancy array constructor.\n*\n* @module @stdlib/ndarray/fancy\n*\n* @example\n* var FancyArray = require( '@stdlib/ndarray/fancy' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var out = new FancyArray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n", "{\n\t\"mode\": \"throw\",\n\t\"order\": \"row-major\"\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 isObject = require( '@stdlib/assert/is-plain-object' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar isOrder = require( './../../base/assert/is-order' );\nvar isIndexMode = require( './../../base/assert/is-index-mode' );\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.mode] - specifies how to handle a linear index which exceeds array dimensions\n* @param {string} [options.order] - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'mode': 'throw',\n* 'order': 'column-major'\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, 'mode' ) ) {\n\t\topts.mode = options.mode;\n\t\tif ( !isIndexMode( opts.mode ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a supported/recognized mode. Option: `%s`.', 'mode', opts.mode ) );\n\t\t}\n\t}\n\tif ( hasOwnProp( options, 'order' ) ) {\n\t\topts.order = options.order;\n\t\tif ( !isOrder( opts.order ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a supported/recognized order. Option: `%s`.', 'order', opts.order ) );\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// MODULES //\n\nvar isNonNegativeIntegerArray = require( '@stdlib/assert/is-nonnegative-integer-array' ).primitives;\nvar isInteger = require( '@stdlib/assert/is-integer' ).isPrimitive;\nvar shape2strides = require( './../../base/shape2strides' );\nvar getSubscripts = require( './../../base/ind2sub' );\nvar format = require( '@stdlib/string/format' );\nvar defaults = require( './defaults.json' );\nvar validate = require( './validate.js' );\n\n\n// MAIN //\n\n/**\n* Converts a linear index to an array of subscripts.\n*\n* ## Notes\n*\n* - The function accepts the following \"modes\":\n*\n* - **throw**: throw an error when a linear index exceeds array dimensions.\n* - **normalize**: normalize negative linear indices and throw an error when a linear index exceeds array dimensions.\n* - **wrap**: wrap around a linear index exceeding array dimensions using modulo arithmetic.\n* - **clamp**: set a linear index exceeding array dimensions to either `0` (minimum linear index) or the maximum linear index.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {integer} idx - linear index\n* @param {Options} [options] - function options\n* @param {string} [options.mode=\"throw\"] - specifies how to handle a linear index which exceeds array dimensions\n* @param {string} [options.order=\"row-major\"] - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @throws {TypeError} shape argument must be an array-like object containing nonnegative integers\n* @throws {TypeError} linear index argument must be integer valued\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {RangeError} must provide a linear index which does not exceed array dimensions\n* @returns {NonNegativeIntegerArray} subscripts\n*\n* @example\n* var s = ind2sub( [ 3, 3, 3 ], 17 );\n* // returns [ 1, 2, 2 ]\n*/\nfunction ind2sub( shape, idx, options ) {\n\tvar opts;\n\tvar err;\n\n\topts = {};\n\topts.mode = defaults.mode;\n\topts.order = defaults.order;\n\tif ( arguments.length > 2 ) {\n\t\terr = validate( opts, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\tif ( !isNonNegativeIntegerArray( shape ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Shape argument must be an array-like object containing nonnegative integers. Value: `%s`.', shape ) );\n\t}\n\tif ( !isInteger( idx ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Linear index must be integer valued. Value: `%s`.', idx ) );\n\t}\n\t// Note: strides are positive, so offset is always zero\n\treturn getSubscripts( shape, shape2strides( shape, opts.order ), 0, opts.order, idx, opts.mode ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nmodule.exports = ind2sub;\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 isNonNegativeIntegerArray = require( '@stdlib/assert/is-nonnegative-integer-array' ).primitives;\nvar isInteger = require( '@stdlib/assert/is-integer' ).isPrimitive;\nvar shape2strides = require( './../../base/shape2strides' );\nvar getSubscripts = require( './../../base/ind2sub' ).assign;\nvar format = require( '@stdlib/string/format' );\nvar defaults = require( './defaults.json' );\nvar validate = require( './validate.js' );\n\n\n// MAIN //\n\n/**\n* Converts a linear index to an array of subscripts and assigns results to a provided output array.\n*\n* ## Notes\n*\n* - The function accepts the following \"modes\":\n*\n* - **throw**: throw an error when a linear index exceeds array dimensions.\n* - **normalize**: normalize negative linear indices and throw an error when a linear index exceeds array dimensions.\n* - **wrap**: wrap around a linear index exceeding array dimensions using modulo arithmetic.\n* - **clamp**: set a linear index exceeding array dimensions to either `0` (minimum linear index) or the maximum linear index.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {integer} idx - linear index\n* @param {Options} [options] - function options\n* @param {string} [options.mode=\"throw\"] - specifies how to handle a linear index which exceeds array dimensions\n* @param {string} [options.order=\"row-major\"] - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @param {(Array|TypedArray|Object)} out - output array\n* @throws {TypeError} output argument must be either an array, typed array, or an object\n* @throws {TypeError} shape argument must be an array-like object containing nonnegative integers\n* @throws {TypeError} linear index argument must be integer valued\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {RangeError} must provide a linear index which does not exceed array dimensions\n* @returns {NonNegativeIntegerArray} subscripts\n*\n* @example\n* var shape = [ 3, 3, 3 ];\n* var out = [ 0, 0, 0 ];\n*\n* var s = ind2sub( shape, 17, out );\n* // returns [ 1, 2, 2 ]\n*\n* var bool = ( s === out );\n* // returns true\n*/\nfunction ind2sub( shape, idx, options, out ) {\n\tvar opts;\n\tvar dest;\n\tvar err;\n\n\topts = {};\n\topts.mode = defaults.mode;\n\topts.order = defaults.order;\n\tif ( arguments.length === 4 ) {\n\t\terr = validate( opts, arguments[ 2 ] );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t\tif ( typeof out !== 'object' || out === null ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Output argument must be either an array, typed array, or object. Value: `%s`.', out ) );\n\t\t}\n\t\tdest = out;\n\t} else {\n\t\tdest = options;\n\t\tif ( typeof dest !== 'object' || dest === null ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Output argument must be either an array, typed array, or object. Value: `%s`.', dest ) );\n\t\t}\n\t}\n\tif ( !isNonNegativeIntegerArray( shape ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Shape argument must be an array-like object containing nonnegative integers. Value: `%s`.', shape ) );\n\t}\n\tif ( !isInteger( idx ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Linear index must be integer valued. Value: `%s`.', idx ) );\n\t}\n\t// Note: strides are positive, so offset is always zero\n\treturn getSubscripts( shape, shape2strides( shape, opts.order ), 0, opts.order, idx, opts.mode, dest ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nmodule.exports = ind2sub;\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 a linear index to an array of subscripts.\n*\n* @module @stdlib/ndarray/ind2sub\n*\n* @example\n* var ind2sub = require( '@stdlib/ndarray/ind2sub' );\n*\n* var s = ind2sub( [ 3, 3, 3 ], 17 );\n* // returns [ 1, 2, 2 ]\n*\n* @example\n* var ind2sub = require( '@stdlib/ndarray/ind2sub' );\n*\n* var shape = [ 3, 3, 3 ];\n* var out = [ 0, 0, 0 ];\n*\n* var s = ind2sub.assign( shape, 17, out );\n* // returns [ 1, 2, 2 ]\n*\n* var bool = ( s === 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// MODULES //\n\nvar setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' );\nvar isPlainObject = require( '@stdlib/assert/is-plain-object' );\nvar isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive;\nvar isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );\nvar isReadOnly = require( './../../../base/assert/is-read-only' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar iteratorSymbol = require( '@stdlib/symbol/iterator' );\nvar zeros = require( '@stdlib/array/base/zeros' );\nvar getShape = require( './../../../shape' );\nvar numel = require( './../../../base/numel' );\nvar slice = require( './../../../base/slice' );\nvar nextCartesianIndex = require( './../../../base/next-cartesian-index' ).assign;\nvar args2multislice = require( '@stdlib/slice/base/args2multislice' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns an iterator which returns `[index, column]` pairs for each column in a matrix (or stack of matrices).\n*\n* @param {ndarray} x - input array\n* @param {Options} [options] - function options\n* @param {boolean} [options.readonly=true] - boolean indicating whether returned views should be read-only\n* @throws {TypeError} first argument must be an ndarray\n* @throws {TypeError} first argument must have at least two dimensions\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {Error} cannot write to a read-only array\n* @returns {Iterator} iterator\n*\n* @example\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var x = array( [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 5, 6 ], [ 7, 8 ] ] ] );\n* // returns \n*\n* var iter = nditerColumnEntries( x );\n*\n* var v = iter.next().value;\n* // returns [...]\n*\n* var idx = v[ 0 ];\n* // returns [ 0, null, 0 ]\n*\n* var col = ndarray2array( v[ 1 ] );\n* // returns [ 1, 3 ]\n*\n* v = iter.next().value;\n* // returns [...]\n*\n* idx = v[ 0 ];\n* // returns [ 0, null, 1 ]\n*\n* col = ndarray2array( v[ 1 ] );\n* // returns [ 2, 4 ]\n*\n* // ...\n*/\nfunction nditerColumnEntries( x ) {\n\tvar options;\n\tvar shape;\n\tvar ndims;\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar idx;\n\tvar dim;\n\tvar S0;\n\tvar N;\n\tvar i;\n\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray. Value: `%s`.', x ) );\n\t}\n\topts = {\n\t\t'writable': false\n\t};\n\tif ( arguments.length > 1 ) {\n\t\toptions = arguments[ 1 ];\n\t\tif ( !isPlainObject( options ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t\t}\n\t\tif ( hasOwnProp( options, 'readonly' ) ) {\n\t\t\tif ( !isBoolean( options.readonly ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'readonly', options.readonly ) );\n\t\t\t}\n\t\t\topts.writable = !options.readonly;\n\t\t\tif ( opts.writable && isReadOnly( x ) ) {\n\t\t\t\tthrow new Error( format( 'invalid option. Cannot write to read-only array.' ) );\n\t\t\t}\n\t\t}\n\t}\n\t// Retrieve input array meta data:\n\tshape = getShape( x );\n\tndims = shape.length;\n\n\t// Ensure that the input array has sufficient dimensions...\n\tif ( ndims < 2 ) {\n\t\tthrow new TypeError( 'invalid argument. First argument must be an ndarray having at least two dimensions.' );\n\t}\n\n\t// Check whether the input array is empty...\n\tN = numel( shape );\n\tif ( N === 0 ) {\n\t\tFLG = true;\n\t}\n\t// Compute the number of columns across all stacks of matrices:\n\tN /= shape[ ndims-2 ];\n\tdim = ndims - 1;\n\tS0 = shape[ dim ];\n\n\t// Initialize a counter:\n\ti = -1;\n\n\t// Initialize an index array:\n\tidx = zeros( ndims );\n\n\t// Set the second-to-last element to `null` to indicate that we want a full \"slice\" for the second-to-last dimension:\n\tidx[ ndims-2 ] = null;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\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\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 indices;\n\t\tvar s;\n\t\tvar j;\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\t// Cache the current state of the index array:\n\t\tindices = idx.slice();\n\n\t\t// Create a multi-slice for the current view:\n\t\ts = args2multislice( idx );\n\n\t\t// Update the index array:\n\t\tj = ( idx[ dim ] + 1 ) % S0;\n\t\tidx[ dim ] = j;\n\t\tif ( j === 0 ) {\n\t\t\t// If we've iterated over all the columns in the current matrix, move on to the next matrix in the stack:\n\t\t\tidx = nextCartesianIndex( shape, 'row-major', idx, dim-2, idx );\n\t\t}\n\t\t// Return the next row entry:\n\t\treturn {\n\t\t\t'value': [ indices, slice( x, s, true, opts.writable ) ],\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 nditerColumnEntries( x, opts );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nditerColumnEntries;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 returns `[index, column]` pairs for each column in a matrix (or stack of matrices).\n*\n* @module @stdlib/ndarray/iter/column-entries\n*\n* @example\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var array = require( '@stdlib/ndarray/array' );\n* var nditerColumnEntries = require( '@stdlib/ndarray/iter/column-entries' );\n*\n* var x = array( [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 5, 6 ], [ 7, 8 ] ] ] );\n* // returns \n*\n* var iter = nditerColumnEntries( x );\n*\n* var v = iter.next().value;\n* // returns [...]\n*\n* var idx = v[ 0 ];\n* // returns [ 0, null, 0 ]\n*\n* var col = ndarray2array( v[ 1 ] );\n* // returns [ 1, 3 ]\n*\n* v = iter.next().value;\n* // returns [...]\n*\n* idx = v[ 0 ];\n* // returns [ 0, null, 1 ]\n*\n* col = ndarray2array( v[ 1 ] );\n* // returns [ 2, 4 ]\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 isPlainObject = require( '@stdlib/assert/is-plain-object' );\nvar isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive;\nvar isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );\nvar isReadOnly = require( './../../../base/assert/is-read-only' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar iteratorSymbol = require( '@stdlib/symbol/iterator' );\nvar zeros = require( '@stdlib/array/base/zeros' );\nvar getShape = require( './../../../shape' );\nvar numel = require( './../../../base/numel' );\nvar slice = require( './../../../base/slice' );\nvar nextCartesianIndex = require( './../../../base/next-cartesian-index' ).assign;\nvar args2multislice = require( '@stdlib/slice/base/args2multislice' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iterates over each column in a matrix (or stack of matrices).\n*\n* @param {ndarray} x - input value\n* @param {Options} [options] - function options\n* @param {boolean} [options.readonly=true] - boolean indicating whether returned views should be read-only\n* @throws {TypeError} first argument must be an ndarray\n* @throws {TypeError} first argument must have at least two dimensions\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {Error} cannot write to a read-only array\n* @returns {Iterator} iterator\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n*\n* var x = array( [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 5, 6 ], [ 7, 8 ] ] ] );\n* // returns \n*\n* var iter = nditerColumns( x );\n*\n* var v = iter.next().value;\n* // returns \n*\n* var arr = ndarray2array( v );\n* // returns [ 1, 3 ]\n*\n* v = iter.next().value;\n* // returns \n*\n* arr = ndarray2array( v );\n* // returns [ 2, 4 ]\n*\n* v = iter.next().value;\n* // returns \n*\n* arr = ndarray2array( v );\n* // returns [ 5, 7 ]\n*\n* // ...\n*/\nfunction nditerColumns( x ) {\n\tvar options;\n\tvar shape;\n\tvar ndims;\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar idx;\n\tvar dim;\n\tvar S0;\n\tvar N;\n\tvar i;\n\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray. Value: `%s`.', x ) );\n\t}\n\topts = {\n\t\t'writable': false\n\t};\n\tif ( arguments.length > 1 ) {\n\t\toptions = arguments[ 1 ];\n\t\tif ( !isPlainObject( options ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t\t}\n\t\tif ( hasOwnProp( options, 'readonly' ) ) {\n\t\t\tif ( !isBoolean( options.readonly ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'readonly', options.readonly ) );\n\t\t\t}\n\t\t\topts.writable = !options.readonly;\n\t\t\tif ( opts.writable && isReadOnly( x ) ) {\n\t\t\t\tthrow new Error( format( 'invalid option. Cannot write to read-only array.' ) );\n\t\t\t}\n\t\t}\n\t}\n\t// Retrieve input array meta data:\n\tshape = getShape( x );\n\tndims = shape.length;\n\n\t// Ensure that the input array has sufficient dimensions...\n\tif ( ndims < 2 ) {\n\t\tthrow new TypeError( 'invalid argument. First argument must be an ndarray having at least two dimensions.' );\n\t}\n\t// Check whether the input array is empty...\n\tN = numel( shape );\n\tif ( N === 0 ) {\n\t\tFLG = true;\n\t}\n\t// Compute the number of columns across all stacks of matrices:\n\tN /= shape[ ndims-2 ];\n\tdim = ndims - 1;\n\tS0 = shape[ dim ];\n\n\t// Initialize a counter:\n\ti = -1;\n\n\t// Initialize an index array for generating slices:\n\tidx = zeros( ndims );\n\n\t// Set the second-to-last element to `null` to indicate that we want a full \"slice\" for the second-to-last dimension:\n\tidx[ ndims-2 ] = null;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\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\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 s;\n\t\tvar j;\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\t// Create a multi-slice for the current view:\n\t\ts = args2multislice( idx );\n\n\t\t// Update the index array:\n\t\tj = ( idx[ dim ] + 1 ) % S0;\n\t\tidx[ dim ] = j;\n\t\tif ( j === 0 ) {\n\t\t\t// If we've iterated over all the columns in the current matrix, move on to the next matrix in the stack:\n\t\t\tidx = nextCartesianIndex( shape, 'row-major', idx, dim-2, idx );\n\t\t}\n\t\t// Return the next column slice:\n\t\treturn {\n\t\t\t'value': slice( x, s, true, opts.writable ),\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 nditerColumns( x, opts );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nditerColumns;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 iterates over each column in a matrix (or stack of matrices).\n*\n* @module @stdlib/ndarray/iter/columns\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var nditerColumns = require( '@stdlib/ndarray/iter/columns' );\n*\n* var x = array( [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 5, 6 ], [ 7, 8 ] ] ] );\n* // returns \n*\n* var iter = nditerColumns( x );\n*\n* var v = iter.next().value;\n* // returns \n*\n* var arr = ndarray2array( v );\n* // returns [ 1, 3 ]\n*\n* v = iter.next().value;\n* // returns \n*\n* arr = ndarray2array( v );\n* // returns [ 2, 4 ]\n*\n* v = iter.next().value;\n* // returns \n*\n* arr = ndarray2array( v );\n* // returns [ 5, 7 ]\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 isPlainObject = require( '@stdlib/assert/is-plain-object' );\nvar isOrder = require( './../../../base/assert/is-order' );\nvar isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar iteratorSymbol = require( '@stdlib/symbol/iterator' );\nvar zeros = require( '@stdlib/array/base/zeros' );\nvar getShape = require( './../../../shape' );\nvar numel = require( './../../../base/numel' );\nvar nextCartesianIndex = require( './../../../base/next-cartesian-index' ).assign;\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns an iterator which returns `[index, value]` pairs for each element in a provided ndarray.\n*\n* @param {ndarray} x - input array\n* @param {Options} [options] - function options\n* @param {boolean} [options.order='row-major'] - index iteration order\n* @throws {TypeError} first argument must be an ndarray\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {Iterator} iterator\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var x = array( [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 5, 6 ], [ 7, 8 ] ] ] );\n* // returns \n*\n* var iter = nditerEntries( x );\n*\n* var v = iter.next().value;\n* // returns [ [ 0, 0, 0 ], 1 ]\n*\n* v = iter.next().value;\n* // returns [ [ 0, 0, 1 ], 2 ]\n*\n* v = iter.next().value;\n* // returns [ [ 0, 1, 0 ], 3 ]\n*\n* // ...\n*/\nfunction nditerEntries( x ) {\n\tvar options;\n\tvar shape;\n\tvar ndims;\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar idx;\n\tvar dim;\n\tvar N;\n\tvar i;\n\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray. Value: `%s`.', x ) );\n\t}\n\topts = {\n\t\t'order': x.order\n\t};\n\tif ( arguments.length > 1 ) {\n\t\toptions = arguments[ 1 ];\n\t\tif ( !isPlainObject( options ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t\t}\n\t\tif ( hasOwnProp( options, 'order' ) ) {\n\t\t\tif ( !isOrder( options.order ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a recognized order. Option: `%s`.', 'order', options.order ) );\n\t\t\t}\n\t\t\topts.order = options.order;\n\t\t}\n\t}\n\t// Retrieve input array meta data:\n\tshape = getShape( x );\n\tndims = shape.length;\n\n\t// Check whether the input array is empty...\n\tN = numel( shape );\n\tif ( N === 0 ) {\n\t\tFLG = true;\n\t}\n\t// Resolve the dimension in which indices iterate fastest:\n\tif ( opts.order === 'row-major' ) {\n\t\tdim = ndims - 1;\n\t} else {\n\t\tdim = 0;\n\t}\n\t// Initialize a counter:\n\ti = -1;\n\n\t// Initialize an index array:\n\tidx = zeros( ndims );\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\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\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\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\tif ( i > 0 ) {\n\t\t\tidx = nextCartesianIndex( shape, opts.order, idx, dim, idx );\n\t\t}\n\t\t// Return the next set of indices:\n\t\treturn {\n\t\t\t'value': [ idx.slice(), x.get.apply( x, idx ) ],\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 nditerEntries( x, opts );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nditerEntries;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 returns `[index, value]` pairs for each element in a provided ndarray.\n*\n* @module @stdlib/ndarray/iter/entries\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n* var nditerEntries = require( '@stdlib/ndarray/iter/entries' );\n*\n* var x = array( [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 5, 6 ], [ 7, 8 ] ] ] );\n* // returns \n*\n* var iter = nditerEntries( x );\n*\n* var v = iter.next().value;\n* // returns [ [ 0, 0, 0 ], 1 ]\n*\n* v = iter.next().value;\n* // returns [ [ 0, 0, 1 ], 2 ]\n*\n* v = iter.next().value;\n* // returns [ [ 0, 1, 0 ], 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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 isPlainObject = require( '@stdlib/assert/is-plain-object' );\nvar isOrder = require( './../../../base/assert/is-order' );\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar iteratorSymbol = require( '@stdlib/symbol/iterator' );\nvar zeros = require( '@stdlib/array/base/zeros' );\nvar numel = require( './../../../base/numel' );\nvar nextCartesianIndex = require( './../../../base/next-cartesian-index' ).assign;\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns an iterator which returns indices for use in indexing into an ndarray having a specified shape.\n*\n* @param {NonNegativeIntegerArray} shape - input shape\n* @param {Options} [options] - function options\n* @param {boolean} [options.order='row-major'] - index iteration order\n* @throws {TypeError} first argument must be an array containing nonnegative integers\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {Iterator} iterator\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var x = array( [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 5, 6 ], [ 7, 8 ] ] ] );\n* // returns \n*\n* var iter = nditerIndices( x.shape );\n*\n* var v = iter.next().value;\n* // returns [ 0, 0, 0 ]\n*\n* v = iter.next().value;\n* // returns [ 0, 0, 1 ]\n*\n* v = iter.next().value;\n* // returns [ 0, 1, 0 ]\n*\n* // ...\n*/\nfunction nditerIndices( shape ) {\n\tvar options;\n\tvar ndims;\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar idx;\n\tvar dim;\n\tvar sh;\n\tvar N;\n\tvar i;\n\n\tif ( !isCollection( shape ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array of nonnegative integers. Value: `%s`.', shape ) );\n\t}\n\topts = {\n\t\t'order': 'row-major'\n\t};\n\tif ( arguments.length > 1 ) {\n\t\toptions = arguments[ 1 ];\n\t\tif ( !isPlainObject( options ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t\t}\n\t\tif ( hasOwnProp( options, 'order' ) ) {\n\t\t\tif ( !isOrder( options.order ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a recognized order. Option: `%s`.', 'order', options.order ) );\n\t\t\t}\n\t\t\topts.order = options.order;\n\t\t}\n\t}\n\t// Retrieve the number of dimensions:\n\tndims = shape.length;\n\n\t// Copy the input shape:\n\tsh = [];\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\tif ( !isNonNegativeInteger( shape[ i ] ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array of nonnegative integers. Value: `%s`.', shape ) );\n\t\t}\n\t\tsh.push( shape[ i ] );\n\t}\n\t// Check whether the input array is empty...\n\tN = numel( sh );\n\tif ( N === 0 ) {\n\t\tFLG = true;\n\t}\n\t// Resolve the dimension in which indices iterate fastest:\n\tif ( opts.order === 'row-major' ) {\n\t\tdim = ndims - 1;\n\t} else {\n\t\tdim = 0;\n\t}\n\t// Initialize a counter:\n\ti = -1;\n\n\t// Initialize an index array:\n\tidx = zeros( ndims );\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\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\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\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\tif ( i > 0 ) {\n\t\t\tidx = nextCartesianIndex( shape, opts.order, idx, dim, idx );\n\t\t}\n\t\t// Return the next set of indices:\n\t\treturn {\n\t\t\t'value': idx.slice(),\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 nditerIndices( sh, opts );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nditerIndices;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 returns indices for use in indexing into an ndarray having a specified shape.\n*\n* @module @stdlib/ndarray/iter/indices\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n* var nditerIndices = require( '@stdlib/ndarray/iter/indices' );\n*\n* var x = array( [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 5, 6 ], [ 7, 8 ] ] ] );\n* // returns \n*\n* var iter = nditerIndices( x.shape );\n*\n* var v = iter.next().value;\n* // returns [ 0, 0, 0 ]\n*\n* v = iter.next().value;\n* // returns [ 0, 0, 1 ]\n*\n* v = iter.next().value;\n* // returns [ 0, 1, 0 ]\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 isPlainObject = require( '@stdlib/assert/is-plain-object' );\nvar isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive;\nvar isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );\nvar isReadOnly = require( './../../../base/assert/is-read-only' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar iteratorSymbol = require( '@stdlib/symbol/iterator' );\nvar zeros = require( '@stdlib/array/base/zeros' );\nvar getShape = require( './../../../shape' );\nvar numel = require( './../../../base/numel' );\nvar slice = require( './../../../base/slice' );\nvar nextCartesianIndex = require( './../../../base/next-cartesian-index' ).assign;\nvar args2multislice = require( '@stdlib/slice/base/args2multislice' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iterates over each matrix in a stack of matrices.\n*\n* @param {ndarray} x - input value\n* @param {Options} [options] - function options\n* @param {boolean} [options.readonly=true] - boolean indicating whether returned views should be read-only\n* @throws {TypeError} first argument must be an ndarray\n* @throws {TypeError} first argument must have at least three dimensions\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {Error} cannot write to a read-only array\n* @returns {Iterator} iterator\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n*\n* var x = array( [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 5, 6 ], [ 7, 8 ] ] ] );\n* // returns \n*\n* var iter = nditerMatrices( x );\n*\n* var v = iter.next().value;\n* // returns \n*\n* var arr = ndarray2array( v );\n* // returns [ [ 1, 2 ], [ 3, 4 ] ]\n*\n* v = iter.next().value;\n* // returns \n*\n* arr = ndarray2array( v );\n* // returns [ [ 5, 6 ], [ 7, 8 ] ]\n*\n* // ...\n*/\nfunction nditerMatrices( x ) {\n\tvar options;\n\tvar shape;\n\tvar ndims;\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar idx;\n\tvar dim;\n\tvar S2;\n\tvar N;\n\tvar i;\n\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray. Value: `%s`.', x ) );\n\t}\n\topts = {\n\t\t'writable': false\n\t};\n\tif ( arguments.length > 1 ) {\n\t\toptions = arguments[ 1 ];\n\t\tif ( !isPlainObject( options ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t\t}\n\t\tif ( hasOwnProp( options, 'readonly' ) ) {\n\t\t\tif ( !isBoolean( options.readonly ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'readonly', options.readonly ) );\n\t\t\t}\n\t\t\topts.writable = !options.readonly;\n\t\t\tif ( opts.writable && isReadOnly( x ) ) {\n\t\t\t\tthrow new Error( format( 'invalid option. Cannot write to read-only array.' ) );\n\t\t\t}\n\t\t}\n\t}\n\t// Retrieve input array meta data:\n\tshape = getShape( x );\n\tndims = shape.length;\n\n\t// Ensure that the input array has sufficient dimensions...\n\tif ( ndims < 3 ) {\n\t\tthrow new TypeError( 'invalid argument. First argument must be an ndarray having at least three dimensions.' );\n\t}\n\t// Check whether the input array is empty...\n\tN = numel( shape );\n\tif ( N === 0 ) {\n\t\tFLG = true;\n\t}\n\t// Compute the number of matrices across all stacks of matrices:\n\tN /= shape[ ndims-1 ] * shape[ ndims-2 ];\n\tdim = ndims - 3;\n\tS2 = shape[ dim ];\n\n\t// Initialize a counter:\n\ti = -1;\n\n\t// Initialize an index array for generating slices:\n\tidx = zeros( ndims );\n\n\t// Set the last two elements to `null` to indicate that we want a full \"slice\" for the last two dimensions:\n\tidx[ ndims-1 ] = null;\n\tidx[ ndims-2 ] = null;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\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\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 s;\n\t\tvar j;\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\t// Create a multi-slice for the current view:\n\t\ts = args2multislice( idx );\n\n\t\t// Update the index array:\n\t\tj = ( idx[ dim ] + 1 ) % S2;\n\t\tidx[ dim ] = j;\n\t\tif ( j === 0 ) {\n\t\t\t// If we've iterated over all the matrices in the current stack, move on to the next set of matrices:\n\t\t\tidx = nextCartesianIndex( shape, 'row-major', idx, dim-1, idx );\n\t\t}\n\t\t// Return the next slice:\n\t\treturn {\n\t\t\t'value': slice( x, s, true, opts.writable ),\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 nditerMatrices( x, opts );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nditerMatrices;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 iterates over each matrix in a stack of matrices.\n*\n* @module @stdlib/ndarray/iter/matrices\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var nditerMatrices = require( '@stdlib/ndarray/iter/matrices' );\n*\n* var x = array( [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 5, 6 ], [ 7, 8 ] ] ] );\n* // returns \n*\n* var iter = nditerMatrices( x );\n*\n* var v = iter.next().value;\n* // returns \n*\n* var arr = ndarray2array( v );\n* // returns [ [ 1, 2 ], [ 3, 4 ] ]\n*\n* v = iter.next().value;\n* // returns \n*\n* arr = ndarray2array( v );\n* // returns [ [ 5, 6 ], [ 7, 8 ] ]\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 isPlainObject = require( '@stdlib/assert/is-plain-object' );\nvar isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive;\nvar isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );\nvar isReadOnly = require( './../../../base/assert/is-read-only' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar iteratorSymbol = require( '@stdlib/symbol/iterator' );\nvar zeros = require( '@stdlib/array/base/zeros' );\nvar getShape = require( './../../../shape' );\nvar numel = require( './../../../base/numel' );\nvar slice = require( './../../../base/slice' );\nvar nextCartesianIndex = require( './../../../base/next-cartesian-index' ).assign;\nvar args2multislice = require( '@stdlib/slice/base/args2multislice' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns an iterator which returns `[index, matrix]` pairs for each matrix in a stack of matrices.\n*\n* @param {ndarray} x - input array\n* @param {Options} [options] - function options\n* @param {boolean} [options.readonly=true] - boolean indicating whether returned views should be read-only\n* @throws {TypeError} first argument must be an ndarray\n* @throws {TypeError} first argument must have at least three dimensions\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {Error} cannot write to a read-only array\n* @returns {Iterator} iterator\n*\n* @example\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var x = array( [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 5, 6 ], [ 7, 8 ] ] ] );\n* // returns \n*\n* var iter = nditerMatrixEntries( x );\n*\n* var v = iter.next().value;\n* // returns [...]\n*\n* var idx = v[ 0 ];\n* // returns [ 0, null, null ]\n*\n* var mat = ndarray2array( v[ 1 ] );\n* // returns [ [ 1, 2 ], [ 3, 4 ] ]\n*\n* v = iter.next().value;\n* // returns [...]\n*\n* idx = v[ 0 ];\n* // returns [ 1, null, null ]\n*\n* mat = ndarray2array( v[ 1 ] );\n* // returns [ [ 5, 6 ], [ 7, 8 ] ]\n*\n* // ...\n*/\nfunction nditerMatrixEntries( x ) {\n\tvar options;\n\tvar shape;\n\tvar ndims;\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar idx;\n\tvar dim;\n\tvar S2;\n\tvar N;\n\tvar i;\n\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray. Value: `%s`.', x ) );\n\t}\n\topts = {\n\t\t'writable': false\n\t};\n\tif ( arguments.length > 1 ) {\n\t\toptions = arguments[ 1 ];\n\t\tif ( !isPlainObject( options ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t\t}\n\t\tif ( hasOwnProp( options, 'readonly' ) ) {\n\t\t\tif ( !isBoolean( options.readonly ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'readonly', options.readonly ) );\n\t\t\t}\n\t\t\topts.writable = !options.readonly;\n\t\t\tif ( opts.writable && isReadOnly( x ) ) {\n\t\t\t\tthrow new Error( format( 'invalid option. Cannot write to read-only array.' ) );\n\t\t\t}\n\t\t}\n\t}\n\t// Retrieve input array meta data:\n\tshape = getShape( x );\n\tndims = shape.length;\n\n\t// Ensure that the input array has sufficient dimensions...\n\tif ( ndims < 3 ) {\n\t\tthrow new TypeError( 'invalid argument. First argument must be an ndarray having at least three dimensions.' );\n\t}\n\n\t// Check whether the input array is empty...\n\tN = numel( shape );\n\tif ( N === 0 ) {\n\t\tFLG = true;\n\t}\n\t// Compute the number of matrices across all stacks of matrices:\n\tN /= shape[ ndims-1 ] * shape[ ndims-2 ];\n\tdim = ndims - 3;\n\tS2 = shape[ dim ];\n\n\t// Initialize a counter:\n\ti = -1;\n\n\t// Initialize an index array:\n\tidx = zeros( ndims );\n\n\t// Set the last two elements to `null` to indicate that we want a full \"slice\" for the last two dimensions:\n\tidx[ ndims-1 ] = null;\n\tidx[ ndims-2 ] = null;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\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\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 indices;\n\t\tvar s;\n\t\tvar j;\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\t// Cache the current state of the index array:\n\t\tindices = idx.slice();\n\n\t\t// Create a multi-slice for the current view:\n\t\ts = args2multislice( idx );\n\n\t\t// Update the index array:\n\t\tj = ( idx[ dim ] + 1 ) % S2;\n\t\tidx[ dim ] = j;\n\t\tif ( j === 0 ) {\n\t\t\t// If we've iterated over all the matrices in the current stack, move on to the next set of matrices:\n\t\t\tidx = nextCartesianIndex( shape, 'row-major', idx, dim-1, idx );\n\t\t}\n\t\t// Return the next matrix entry:\n\t\treturn {\n\t\t\t'value': [ indices, slice( x, s, true, opts.writable ) ],\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 nditerMatrixEntries( x, opts );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nditerMatrixEntries;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 returns `[index, matrix]` pairs for each matrix in a stack of matrices.\n*\n* @module @stdlib/ndarray/iter/matrix-entries\n*\n* @example\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var array = require( '@stdlib/ndarray/array' );\n* var nditerMatrixEntries = require( '@stdlib/ndarray/iter/matrix-entries' );\n*\n* var x = array( [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 5, 6 ], [ 7, 8 ] ] ] );\n* // returns \n*\n* var iter = nditerMatrixEntries( x );\n*\n* var v = iter.next().value;\n* // returns [...]\n*\n* var idx = v[ 0 ];\n* // returns [ 0, null, null ]\n*\n* var mat = ndarray2array( v[ 1 ] );\n* // returns [ [ 1, 2 ], [ 3, 4 ] ]\n*\n* v = iter.next().value;\n* // returns [...]\n*\n* idx = v[ 0 ];\n* // returns [ 1, null, null ]\n*\n* mat = ndarray2array( v[ 1 ] );\n* // returns [ [ 5, 6 ], [ 7, 8 ] ]\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 isPlainObject = require( '@stdlib/assert/is-plain-object' );\nvar isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive;\nvar isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );\nvar isReadOnly = require( './../../../base/assert/is-read-only' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar iteratorSymbol = require( '@stdlib/symbol/iterator' );\nvar zeros = require( '@stdlib/array/base/zeros' );\nvar getShape = require( './../../../shape' );\nvar numel = require( './../../../base/numel' );\nvar slice = require( './../../../base/slice' );\nvar nextCartesianIndex = require( './../../../base/next-cartesian-index' ).assign;\nvar args2multislice = require( '@stdlib/slice/base/args2multislice' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns an iterator which returns `[index, row]` pairs for each row in a matrix (or stack of matrices).\n*\n* @param {ndarray} x - input array\n* @param {Options} [options] - function options\n* @param {boolean} [options.readonly=true] - boolean indicating whether returned views should be read-only\n* @throws {TypeError} first argument must be an ndarray\n* @throws {TypeError} first argument must have at least two dimensions\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {Error} cannot write to a read-only array\n* @returns {Iterator} iterator\n*\n* @example\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var x = array( [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 5, 6 ], [ 7, 8 ] ] ] );\n* // returns \n*\n* var iter = nditerRowEntries( x );\n*\n* var v = iter.next().value;\n* // returns [...]\n*\n* var idx = v[ 0 ];\n* // returns [ 0, 0, null ]\n*\n* var row = ndarray2array( v[ 1 ] );\n* // returns [ 1, 2 ]\n*\n* v = iter.next().value;\n* // returns [...]\n*\n* idx = v[ 0 ];\n* // returns [ 0, 1, null ]\n*\n* row = ndarray2array( v[ 1 ] );\n* // returns [ 3, 4 ]\n*\n* // ...\n*/\nfunction nditerRowEntries( x ) {\n\tvar options;\n\tvar shape;\n\tvar ndims;\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar idx;\n\tvar dim;\n\tvar S1;\n\tvar N;\n\tvar i;\n\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray. Value: `%s`.', x ) );\n\t}\n\topts = {\n\t\t'writable': false\n\t};\n\tif ( arguments.length > 1 ) {\n\t\toptions = arguments[ 1 ];\n\t\tif ( !isPlainObject( options ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t\t}\n\t\tif ( hasOwnProp( options, 'readonly' ) ) {\n\t\t\tif ( !isBoolean( options.readonly ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'readonly', options.readonly ) );\n\t\t\t}\n\t\t\topts.writable = !options.readonly;\n\t\t\tif ( opts.writable && isReadOnly( x ) ) {\n\t\t\t\tthrow new Error( format( 'invalid option. Cannot write to read-only array.' ) );\n\t\t\t}\n\t\t}\n\t}\n\t// Retrieve input array meta data:\n\tshape = getShape( x );\n\tndims = shape.length;\n\n\t// Ensure that the input array has sufficient dimensions...\n\tif ( ndims < 2 ) {\n\t\tthrow new TypeError( 'invalid argument. First argument must be an ndarray having at least two dimensions.' );\n\t}\n\n\t// Check whether the input array is empty...\n\tN = numel( shape );\n\tif ( N === 0 ) {\n\t\tFLG = true;\n\t}\n\t// Compute the number of rows across all stacks of matrices:\n\tN /= shape[ ndims-1 ];\n\tdim = ndims - 2;\n\tS1 = shape[ dim ];\n\n\t// Initialize a counter:\n\ti = -1;\n\n\t// Initialize an index array:\n\tidx = zeros( ndims );\n\n\t// Set the last element to `null` to indicate that we want a full \"slice\" for the last dimension:\n\tidx[ ndims-1 ] = null;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\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\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 indices;\n\t\tvar s;\n\t\tvar j;\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\t// Cache the current state of the index array:\n\t\tindices = idx.slice();\n\n\t\t// Create a multi-slice for the current view:\n\t\ts = args2multislice( idx );\n\n\t\t// Update the index array:\n\t\tj = ( idx[ dim ] + 1 ) % S1;\n\t\tidx[ dim ] = j;\n\t\tif ( j === 0 ) {\n\t\t\t// If we've iterated over all the rows in the current matrix, move on to the next matrix in the stack:\n\t\t\tidx = nextCartesianIndex( shape, 'row-major', idx, dim-1, idx );\n\t\t}\n\t\t// Return the next row entry:\n\t\treturn {\n\t\t\t'value': [ indices, slice( x, s, true, opts.writable ) ],\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 nditerRowEntries( x, opts );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nditerRowEntries;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 returns `[index, row]` pairs for each row in a matrix (or stack of matrices).\n*\n* @module @stdlib/ndarray/iter/row-entries\n*\n* @example\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var array = require( '@stdlib/ndarray/array' );\n* var nditerRowEntries = require( '@stdlib/ndarray/iter/row-entries' );\n*\n* var x = array( [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 5, 6 ], [ 7, 8 ] ] ] );\n* // returns \n*\n* var iter = nditerRowEntries( x );\n*\n* var v = iter.next().value;\n* // returns [...]\n*\n* var idx = v[ 0 ];\n* // returns [ 0, 0, null ]\n*\n* var row = ndarray2array( v[ 1 ] );\n* // returns [ 1, 2 ]\n*\n* v = iter.next().value;\n* // returns [...]\n*\n* idx = v[ 0 ];\n* // returns [ 0, 1, null ]\n*\n* row = ndarray2array( v[ 1 ] );\n* // returns [ 3, 4 ]\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 isPlainObject = require( '@stdlib/assert/is-plain-object' );\nvar isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive;\nvar isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );\nvar isReadOnly = require( './../../../base/assert/is-read-only' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar iteratorSymbol = require( '@stdlib/symbol/iterator' );\nvar zeros = require( '@stdlib/array/base/zeros' );\nvar getShape = require( './../../../shape' );\nvar numel = require( './../../../base/numel' );\nvar slice = require( './../../../base/slice' );\nvar nextCartesianIndex = require( './../../../base/next-cartesian-index' ).assign;\nvar args2multislice = require( '@stdlib/slice/base/args2multislice' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns an iterator which iterates over each row in a matrix (or stack of matrices).\n*\n* @param {ndarray} x - input value\n* @param {Options} [options] - function options\n* @param {boolean} [options.readonly=true] - boolean indicating whether returned views should be read-only\n* @throws {TypeError} first argument must be an ndarray\n* @throws {TypeError} first argument must have at least two dimensions\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {Error} cannot write to a read-only array\n* @returns {Iterator} iterator\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n*\n* var x = array( [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 5, 6 ], [ 7, 8 ] ] ] );\n* // returns \n*\n* var iter = nditerRows( x );\n*\n* var v = iter.next().value;\n* // returns \n*\n* var arr = ndarray2array( v );\n* // returns [ 1, 2 ]\n*\n* v = iter.next().value;\n* // returns \n*\n* arr = ndarray2array( v );\n* // returns [ 3, 4 ]\n*\n* v = iter.next().value;\n* // returns \n*\n* arr = ndarray2array( v );\n* // returns [ 5, 6 ]\n*\n* // ...\n*/\nfunction nditerRows( x ) {\n\tvar options;\n\tvar shape;\n\tvar ndims;\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar idx;\n\tvar dim;\n\tvar S1;\n\tvar N;\n\tvar i;\n\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray. Value: `%s`.', x ) );\n\t}\n\topts = {\n\t\t'writable': false\n\t};\n\tif ( arguments.length > 1 ) {\n\t\toptions = arguments[ 1 ];\n\t\tif ( !isPlainObject( options ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t\t}\n\t\tif ( hasOwnProp( options, 'readonly' ) ) {\n\t\t\tif ( !isBoolean( options.readonly ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'readonly', options.readonly ) );\n\t\t\t}\n\t\t\topts.writable = !options.readonly;\n\t\t\tif ( opts.writable && isReadOnly( x ) ) {\n\t\t\t\tthrow new Error( format( 'invalid option. Cannot write to read-only array.' ) );\n\t\t\t}\n\t\t}\n\t}\n\t// Retrieve input array meta data:\n\tshape = getShape( x );\n\tndims = shape.length;\n\n\t// Ensure that the input array has sufficient dimensions...\n\tif ( ndims < 2 ) {\n\t\tthrow new TypeError( 'invalid argument. First argument must be an ndarray having at least two dimensions.' );\n\t}\n\t// Check whether the input array is empty...\n\tN = numel( shape );\n\tif ( N === 0 ) {\n\t\tFLG = true;\n\t}\n\t// Compute the number of rows across all stacks of matrices:\n\tN /= shape[ ndims-1 ];\n\tdim = ndims - 2;\n\tS1 = shape[ dim ];\n\n\t// Initialize a counter:\n\ti = -1;\n\n\t// Initialize an index array for generating slices:\n\tidx = zeros( ndims );\n\n\t// Set the last element to `null` to indicate that we want a full \"slice\" for the last dimension:\n\tidx[ ndims-1 ] = null;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\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\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 s;\n\t\tvar j;\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\t// Create a multi-slice for the current view:\n\t\ts = args2multislice( idx );\n\n\t\t// Update the index array:\n\t\tj = ( idx[ dim ] + 1 ) % S1;\n\t\tidx[ dim ] = j;\n\t\tif ( j === 0 ) {\n\t\t\t// If we've iterated over all the rows in the current matrix, move on to the next matrix in the stack:\n\t\t\tidx = nextCartesianIndex( shape, 'row-major', idx, dim-1, idx );\n\t\t}\n\t\t// Return the next row slice:\n\t\treturn {\n\t\t\t'value': slice( x, s, true, opts.writable ),\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 nditerRows( x, opts );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nditerRows;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 iterates over each row in a matrix (or stack of matrices).\n*\n* @module @stdlib/ndarray/iter/rows\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var nditerRows = require( '@stdlib/ndarray/iter/rows' );\n*\n* var x = array( [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 5, 6 ], [ 7, 8 ] ] ] );\n* // returns \n*\n* var iter = nditerRows( x );\n*\n* var v = iter.next().value;\n* // returns \n*\n* var arr = ndarray2array( v );\n* // returns [ 1, 2 ]\n*\n* v = iter.next().value;\n* // returns \n*\n* arr = ndarray2array( v );\n* // returns [ 3, 4 ]\n*\n* v = iter.next().value;\n* // returns \n*\n* arr = ndarray2array( v );\n* // returns [ 5, 6 ]\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );\nvar toArray = require( './../../base/to-array' );\nvar getStrides = require( './../../strides' );\nvar getOffset = require( './../../offset' );\nvar getShape = require( './../../shape' );\nvar getOrder = require( './../../order' );\nvar getData = require( './../../data-buffer' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Converts an ndarray to a generic array (which may include nested arrays).\n*\n* @param {ndarrayLike} x - input ndarray\n* @throws {TypeError} must provide an ndarray\n* @returns {(EmptyArray|Array|Array)} array (which may include nested arrays)\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n*\n* var buffer = [ 1, 2, 3, 4 ];\n* var shape = [ 2, 2 ];\n* var order = 'row-major';\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var arr = ndarray( 'generic', buffer, shape, strides, offset, order );\n*\n* var out = ndarray2array( arr );\n* // returns [ [ 1, 2 ], [ 3, 4 ] ]\n*/\nfunction ndarray2array( x ) {\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\treturn toArray( getData( x ), getShape( x ), getStrides( x ), getOffset( x ), getOrder( x ) ); // eslint-disable-line max-len\n}\n\n\n// EXPORTS //\n\nmodule.exports = ndarray2array;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 ndarray to a generic array (which may include nested arrays).\n*\n* @module @stdlib/ndarray/to-array\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n*\n* var buffer = [ 1, 2, 3, 4 ];\n* var shape = [ 2, 2 ];\n* var order = 'row-major';\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var arr = ndarray( 'generic', buffer, shape, strides, offset, order );\n* // returns \n*\n* var out = ndarray2array( arr );\n* // returns [ [ 1, 2 ], [ 3, 4 ] ]\n*/\n\n// MODULES //\n\nvar ndarray2array = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = ndarray2array;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 isIteratorLike = require( '@stdlib/assert/is-iterator-like' );\nvar iteratorSymbol = require( '@stdlib/symbol/iterator' );\nvar ndarray2array = require( './../../../to-array' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns an iterator which converts each iterated ndarray to a generic array.\n*\n* @param {Iterator} iterator - input iterator\n* @throws {TypeError} must provide an iterator protocol-compliant object\n* @returns {Iterator} iterator\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var nditerRows = require( '@stdlib/ndarray/iter/rows' );\n*\n* var x = array( [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 5, 6 ], [ 7, 8 ] ] ] );\n* // returns \n*\n* var iter = nditer2arrayEach( nditerRows( x ) );\n*\n* var v = iter.next().value;\n* // returns [ 1, 2 ]\n*\n* v = iter.next().value;\n* // returns [ 3, 4 ]\n*\n* v = iter.next().value;\n* // returns [ 5, 6 ]\n*\n* // ...\n*/\nfunction nditer2arrayEach( iterator ) {\n\tvar iter;\n\tvar FLG;\n\n\tif ( !isIteratorLike( iterator ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an iterator protocol-compliant object. Value: `%s`.', iterator ) );\n\t}\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\t// If an environment supports `Symbol.iterator` and a provided iterator is iterable, make the iterator iterable:\n\tif ( iteratorSymbol && isFunction( iterator[ iteratorSymbol ] ) ) {\n\t\tsetReadOnly( iter, iteratorSymbol, 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 v;\n\t\tif ( FLG ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\tv = iterator.next();\n\t\tif ( v.done ) {\n\t\t\tFLG = true;\n\t\t\treturn v;\n\t\t}\n\t\treturn {\n\t\t\t'value': ndarray2array( v.value ),\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 nditer2arrayEach( iterator[ iteratorSymbol ]() );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nditer2arrayEach;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 converts each iterated ndarray to a generic array.\n*\n* @module @stdlib/ndarray/iter/to-array-each\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var nditerRows = require( '@stdlib/ndarray/iter/rows' );\n* var nditer2arrayEach = require( '@stdlib/ndarray/iter/to-array-each' );\n*\n* var x = array( [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 5, 6 ], [ 7, 8 ] ] ] );\n* // returns \n*\n* var iter = nditer2arrayEach( nditerRows( x ) );\n*\n* var v = iter.next().value;\n* // returns [ 1, 2 ]\n*\n* v = iter.next().value;\n* // returns [ 3, 4 ]\n*\n* v = iter.next().value;\n* // returns [ 5, 6 ]\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 isPlainObject = require( '@stdlib/assert/is-plain-object' );\nvar isOrder = require( './../../../base/assert/is-order' );\nvar isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar iteratorSymbol = require( '@stdlib/symbol/iterator' );\nvar zeros = require( '@stdlib/array/base/zeros' );\nvar getShape = require( './../../../shape' );\nvar numel = require( './../../../base/numel' );\nvar nextCartesianIndex = require( './../../../base/next-cartesian-index' ).assign;\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns an iterator which returns individual elements from a provided ndarray.\n*\n* @param {ndarray} x - input array\n* @param {Options} [options] - function options\n* @param {boolean} [options.order='row-major'] - index iteration order\n* @throws {TypeError} first argument must be an ndarray\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {Iterator} iterator\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var x = array( [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 5, 6 ], [ 7, 8 ] ] ] );\n* // returns \n*\n* var iter = nditerValues( x );\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 nditerValues( x ) {\n\tvar options;\n\tvar shape;\n\tvar ndims;\n\tvar opts;\n\tvar iter;\n\tvar FLG;\n\tvar idx;\n\tvar dim;\n\tvar N;\n\tvar i;\n\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray. Value: `%s`.', x ) );\n\t}\n\topts = {\n\t\t'order': x.order\n\t};\n\tif ( arguments.length > 1 ) {\n\t\toptions = arguments[ 1 ];\n\t\tif ( !isPlainObject( options ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t\t}\n\t\tif ( hasOwnProp( options, 'order' ) ) {\n\t\t\tif ( !isOrder( options.order ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a recognized order. Option: `%s`.', 'order', options.order ) );\n\t\t\t}\n\t\t\topts.order = options.order;\n\t\t}\n\t}\n\t// Retrieve input array meta data:\n\tshape = getShape( x );\n\tndims = shape.length;\n\n\t// Check whether the input array is empty...\n\tN = numel( shape );\n\tif ( N === 0 ) {\n\t\tFLG = true;\n\t}\n\t// Resolve the dimension in which indices iterate fastest:\n\tif ( opts.order === 'row-major' ) {\n\t\tdim = ndims - 1;\n\t} else {\n\t\tdim = 0;\n\t}\n\t// Initialize a counter:\n\ti = -1;\n\n\t// Initialize an index array:\n\tidx = zeros( ndims );\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\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\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\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\tif ( i > 0 ) {\n\t\t\tidx = nextCartesianIndex( shape, opts.order, idx, dim, idx );\n\t\t}\n\t\t// Return the next set of indices:\n\t\treturn {\n\t\t\t'value': x.get.apply( x, idx ),\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 nditerValues( x, opts );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nditerValues;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 returns individual elements from a provided ndarray.\n*\n* @module @stdlib/ndarray/iter/values\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n* var nditerValues = require( '@stdlib/ndarray/iter/values' );\n*\n* var x = array( [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 5, 6 ], [ 7, 8 ] ] ] );\n* // returns \n*\n* var iter = nditerValues( x.shape );\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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* Top-level namespace.\n*\n* @namespace ns\n*/\nvar ns = {};\n\n/**\n* @name nditerColumnEntries\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/iter/column-entries}\n*/\nsetReadOnly( ns, 'nditerColumnEntries', require( './../../iter/column-entries' ) );\n\n/**\n* @name nditerColumns\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/iter/columns}\n*/\nsetReadOnly( ns, 'nditerColumns', require( './../../iter/columns' ) );\n\n/**\n* @name nditerEntries\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/iter/entries}\n*/\nsetReadOnly( ns, 'nditerEntries', require( './../../iter/entries' ) );\n\n/**\n* @name nditerIndices\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/iter/indices}\n*/\nsetReadOnly( ns, 'nditerIndices', require( './../../iter/indices' ) );\n\n/**\n* @name nditerMatrices\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/iter/matrices}\n*/\nsetReadOnly( ns, 'nditerMatrices', require( './../../iter/matrices' ) );\n\n/**\n* @name nditerMatrixEntries\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/iter/matrix-entries}\n*/\nsetReadOnly( ns, 'nditerMatrixEntries', require( './../../iter/matrix-entries' ) );\n\n/**\n* @name nditerRowEntries\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/iter/row-entries}\n*/\nsetReadOnly( ns, 'nditerRowEntries', require( './../../iter/row-entries' ) );\n\n/**\n* @name nditerRows\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/iter/rows}\n*/\nsetReadOnly( ns, 'nditerRows', require( './../../iter/rows' ) );\n\n/**\n* @name nditer2arrayEach\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/iter/to-array-each}\n*/\nsetReadOnly( ns, 'nditer2arrayEach', require( './../../iter/to-array-each' ) );\n\n/**\n* @name nditerValues\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/iter/values}\n*/\nsetReadOnly( ns, 'nditerValues', require( './../../iter/values' ) );\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// MODULES //\n\nvar isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );\nvar isCollection = require( '@stdlib/assert/is-collection' );\nvar isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ).isPrimitive;\nvar broadcast = require( './../../broadcast-array' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Broadcasts an ndarray to a specified shape if and only if the specified shape differs from the provided ndarray's shape.\n*\n* ## Notes\n*\n* - If a provided ndarray has the same shape as the specified shape, the function returns the provided ndarray.\n* - If a provided ndarray has a different (broadcast compatible) shape than the specified shape, the function returns a new **read-only** ndarray view of the provided ndarray's data. The view is typically **not** contiguous. As more than one element of a returned view may refer to the same memory location, writing to the input ndarray may affect multiple elements. If you need to write to the input ndarray, copy the input ndarray before broadcasting.\n*\n* @param {ndarray} x - input array\n* @param {NonNegativeIntegerArray} shape - desired shape\n* @throws {TypeError} first argument must be an ndarray\n* @throws {TypeError} second argument must be an array of nonnegative integers\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 shape\n* @throws {Error} input array and desired shape must be broadcast compatible\n* @returns {ndarray} broadcasted array\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var shx = x.shape;\n* // returns [ 2, 2 ]\n*\n* var y = maybeBroadcastArray( x, [ 3, 2, 2 ] );\n* // returns \n*\n* var shy = y.shape;\n* // returns [ 3, 2, 2 ]\n*\n* var v = y.get( 0, 0, 0 );\n* // returns 1\n*\n* v = y.get( 0, 0, 1 );\n* // returns 2\n*\n* v = y.get( 1, 0, 0 );\n* // returns 1\n*\n* v = y.get( 1, 1, 0 );\n* // returns 3\n*\n* v = y.get( 2, 0, 0 );\n* // returns 1\n*\n* v = y.get( 2, 1, 1 );\n* // returns 4\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var y = maybeBroadcastArray( x, [ 3, 2 ] );\n* // throws \n*/\nfunction maybeBroadcastArray( x, shape ) {\n\tvar sh;\n\tvar N;\n\tvar d;\n\tvar i;\n\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray. Value: `%s`.', x ) );\n\t}\n\tif ( !isCollection( shape ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an array of nonnegative integers. Value: `%s`.', shape ) );\n\t}\n\tN = shape.length;\n\tsh = x.shape;\n\n\t// Check whether we need to broadcast the input array...\n\tif ( sh.length === N ) {\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\td = shape[ i ];\n\t\t\tif ( !isNonNegativeInteger( d ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an array of nonnegative integers. Value: `%s`.', '[' + shape.join( ',' ) + ']' ) );\n\t\t\t}\n\t\t\t// Check whether dimensions match...\n\t\t\tif ( sh[ i ] !== d ) {\n\t\t\t\t// We found a mismatched dimension; delegate to `broadcast` to ensure that the input array is broadcast compatible with the desired array shape...\n\t\t\t\treturn broadcast( x, shape );\n\t\t\t}\n\t\t}\n\t\treturn x;\n\t}\n\t// If we are provided an array having a different rank (i.e., number of dimensions) than the desired shape, assume we need to broadcast, delegating to `broadcast` to ensure that the input array is broadcast compatible with the desired array shape...\n\treturn broadcast( x, shape );\n}\n\n\n// EXPORTS //\n\nmodule.exports = maybeBroadcastArray;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 ndarray to a specified shape if and only if the specified shape differs from the provided ndarray's shape.\n*\n* @module @stdlib/ndarray/maybe-broadcast-array\n*\n* @example\n* var array = require( '@stdlib/ndarray/array' );\n* var maybeBroadcastArray = require( '@stdlib/ndarray/maybe-broadcast-array' );\n*\n* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );\n* // returns \n*\n* var shx = x.shape;\n* // returns [ 2, 2 ]\n*\n* var y = maybeBroadcastArray( x, [ 3, 2, 2 ] );\n* // returns \n*\n* var shy = y.shape;\n* // returns [ 3, 2, 2 ]\n*\n* var v = y.get( 0, 0, 0 );\n* // returns 1\n*\n* v = y.get( 0, 0, 1 );\n* // returns 2\n*\n* v = y.get( 1, 0, 0 );\n* // returns 1\n*\n* v = y.get( 1, 1, 0 );\n* // returns 3\n*\n* v = y.get( 2, 0, 0 );\n* // returns 1\n*\n* v = y.get( 2, 1, 1 );\n* // returns 4\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\"complex64\": \"complex128\",\n\t\"complex128\": -1,\n\t\"generic\": -1,\n\t\"binary\": -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 resolveStr = require( './../../base/dtype-resolve-str' );\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 ndarray data type of the same kind.\n*\n* @param {*} [dtype] - ndarray data type value\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\tdtype = resolveStr( dtype );\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 ndarray data type of the same kind.\n*\n* @module @stdlib/ndarray/next-dtype\n*\n* @example\n* var nextDataType = require( '@stdlib/ndarray/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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 isCollection = require( '@stdlib/assert/is-collection' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns the number of elements in an ndarray.\n*\n* @param {ndarrayLike} x - input ndarray\n* @throws {TypeError} must provide an ndarray\n* @returns {NonNegativeInteger} number of elements\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n*\n* var n = numel( zeros( [ 3, 3, 3 ] ) );\n* // returns 27\n*/\nfunction numel( x ) {\n\tvar ndims;\n\tvar sh;\n\tvar n;\n\tvar d;\n\tvar i;\n\n\t// Note: we intentionally avoid rigorous ndarray checks to minimize performance impacts. This obviously means that non-ndarray-like objects (e.g., vanilla arrays) can sneak through, but this is likely all right for the purposes of this function...\n\tif ( typeof x !== 'object' || x === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\tn = x.length;\n\tif ( isNonNegativeInteger( n ) ) {\n\t\treturn n;\n\t}\n\tsh = x.shape;\n\tif ( !isCollection( sh ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t}\n\tndims = sh.length;\n\tif ( ndims === 0 ) {\n\t\t// Note: for minimal \"ndarray-like objects\", this will erroneously return zero when `x` is a zero-dimensional ndarray. This is part of the rationale for having a `length` property on actual ndarrays. As we don't can't know whether a provided ndarray-like is actually zero-dimensional without knowing/inspecting implementation details, we return zero here...\n\t\treturn 0;\n\t}\n\tn = 1;\n\tfor ( i = 0; i < ndims; i++ ) {\n\t\td = sh[ i ];\n\t\tif ( !isNonNegativeInteger( d ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide an ndarray. Value: `%s`.', x ) );\n\t\t}\n\t\tn *= d;\n\t}\n\treturn n;\n}\n\n\n// EXPORTS //\n\nmodule.exports = numel;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 number of elements in an ndarray.\n*\n* @module @stdlib/ndarray/numel\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n* var numel = require( '@stdlib/ndarray/numel' );\n*\n* var n = numel( zeros( [ 3, 3, 3 ] ) );\n* // returns 27\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\": \"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\t\t\"complex64\": \"complex128\",\n\t\t\"complex128\": \"complex128\",\n\t\t\"binary\": -1,\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\t\t\"complex64\": \"complex64\",\n\t\t\"complex128\": \"complex128\",\n\t\t\"binary\": -1,\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\t\t\"complex64\": \"complex128\",\n\t\t\"complex128\": \"complex128\",\n\t\t\"binary\": -1,\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\t\t\"complex64\": \"complex64\",\n\t\t\"complex128\": \"complex128\",\n\t\t\"binary\": -1,\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\t\t\"complex64\": \"complex64\",\n\t\t\"complex128\": \"complex128\",\n\t\t\"binary\": -1,\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\t\t\"complex64\": \"complex128\",\n\t\t\"complex128\": \"complex128\",\n\t\t\"binary\": -1,\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\t\t\"complex64\": \"complex64\",\n\t\t\"complex128\": \"complex128\",\n\t\t\"binary\": -1,\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\t\t\"complex64\": \"complex64\",\n\t\t\"complex128\": \"complex128\",\n\t\t\"binary\": -1,\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\": \"uint8c\",\n\t\t\"complex64\": \"complex64\",\n\t\t\"complex128\": \"complex128\",\n\t\t\"binary\": -1,\n\t\t\"generic\": \"generic\"\n\t},\n\t\"complex128\": {\n\t\t\"float64\": \"complex128\",\n\t\t\"float32\": \"complex128\",\n\t\t\"int32\": \"complex128\",\n\t\t\"int16\": \"complex128\",\n\t\t\"int8\": \"complex128\",\n\t\t\"uint32\": \"complex128\",\n\t\t\"uint16\": \"complex128\",\n\t\t\"uint8\": \"complex128\",\n\t\t\"uint8c\": \"complex128\",\n\t\t\"complex64\": \"complex128\",\n\t\t\"complex128\": \"complex128\",\n\t\t\"binary\": -1,\n\t\t\"generic\": \"generic\"\n\t},\n\t\"complex64\": {\n\t\t\"float64\": \"complex128\",\n\t\t\"float32\": \"complex64\",\n\t\t\"int32\": \"complex128\",\n\t\t\"int16\": \"complex64\",\n\t\t\"int8\": \"complex64\",\n\t\t\"uint32\": \"complex128\",\n\t\t\"uint16\": \"complex64\",\n\t\t\"uint8\": \"complex64\",\n\t\t\"uint8c\": \"complex64\",\n\t\t\"complex64\": \"complex64\",\n\t\t\"complex128\": \"complex128\",\n\t\t\"binary\": -1,\n\t\t\"generic\": \"generic\"\n\t},\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\t\t\"complex64\": \"generic\",\n\t\t\"complex128\": \"generic\",\n\t\t\"binary\": -1,\n\t\t\"generic\": \"generic\"\n\t},\n\t\"binary\": {\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\": -1,\n\t\t\"uint16\": -1,\n\t\t\"uint8\": -1,\n\t\t\"uint8c\": -1,\n\t\t\"complex64\": -1,\n\t\t\"complex128\": -1,\n\t\t\"binary\": \"binary\",\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 resolve = require( './../../base/dtype-resolve-str' );\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 ndarray data type with the smallest size and closest \"kind\" to which ndarray data types can be safely cast.\n*\n* @param {*} [dtype1] - ndarray data type value\n* @param {*} [dtype2] - ndarray data type value\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( 'binary', 'generic' );\n* // returns -1\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\tdtype1 = resolve( dtype1 );\n\tif ( hasOwnProp( PROMOTION_RULES, dtype1 ) ) {\n\t\to = PROMOTION_RULES[ dtype1 ];\n\t\tdtype2 = resolve( dtype2 );\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 ndarray data type with the smallest size and closest \"kind\" to which ndarray data types can be safely cast.\n*\n* @module @stdlib/ndarray/promotion-rules\n*\n* @example\n* var promotionRules = require( '@stdlib/ndarray/promotion-rules' );\n*\n* var table = promotionRules();\n* // returns {...}\n*\n* var dt = promotionRules( 'float32', 'uint32' );\n* // returns 'float64'\n*\n* dt = promotionRules( 'binary', 'generic' );\n* // returns -1\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) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 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 isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );\nvar isMultiSlice = require( '@stdlib/assert/is-multi-slice' );\nvar isArrayLikeObject = require( '@stdlib/assert/is-array-like-object' );\nvar isPlainObject = require( '@stdlib/assert/is-plain-object' );\nvar isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive;\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar MultiSlice = require( '@stdlib/slice/multi' );\nvar args2multislice = require( '@stdlib/slice/base/args2multislice' );\nvar base = require( './../../base/slice' );\nvar getShape = require( './../../shape' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns a read-only view of an input ndarray.\n*\n* @param {ndarray} x - input array\n* @param {...*} s - slice arguments\n* @param {Options} [options] - options\n* @param {boolean} [options.strict] - boolean indicating whether to enforce strict bounds checking\n* @throws {TypeError} first argument must be an ndarray\n* @throws {TypeError} must provide valid slice arguments\n* @throws {Error} insufficient arguments\n* @throws {Error} too many arguments\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {RangeError} number of slice dimensions must match the number of array dimensions\n* @throws {RangeError} slice exceeds array bounds\n* @returns {ndarray} ndarray view\n*\n* @example\n* var Slice = require( '@stdlib/slice/ctor' );\n* var MultiSlice = require( '@stdlib/slice/multi' );\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var s = new MultiSlice( new Slice( null, null, -2 ), new Slice( null, null, -1 ) );\n* // returns \n*\n* var y = slice( x, s );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 6.0, 5.0 ], [ 2.0, 1.0 ] ]\n*/\nfunction slice( x, s ) {\n\tvar options;\n\tvar nargs;\n\tvar opts;\n\tvar args;\n\tvar sh;\n\tvar S;\n\tvar i;\n\n\topts = {\n\t\t'strict': true\n\t};\n\tnargs = arguments.length;\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray. Value: `%s`.', x ) );\n\t}\n\tif ( isPlainObject( arguments[ nargs-1 ] ) ) {\n\t\tnargs -= 1;\n\t\toptions = arguments[ nargs ];\n\t\tif ( hasOwnProp( options, 'strict' ) ) {\n\t\t\tif ( !isBoolean( options.strict ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'strict', options.strict ) );\n\t\t\t}\n\t\t\topts.strict = options.strict;\n\t\t}\n\t\tsh = getShape( x );\n\t\tif ( nargs === 1 && sh.length > 0 ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Number of slice dimensions does not match the number of array dimensions. Array shape: (%s). Slice dimensions: %u.', sh.join( ',' ), 0 ) );\n\t\t}\n\t}\n\tif ( isMultiSlice( s ) ) {\n\t\tS = s;\n\t\tif ( nargs > 2 ) {\n\t\t\tthrow new Error( 'invalid invocation. Too many arguments.' );\n\t\t}\n\t} else {\n\t\tif ( isArrayLikeObject( s ) ) {\n\t\t\targs = s;\n\t\t\tif ( nargs > 2 ) {\n\t\t\t\tthrow new Error( 'invalid invocation. Too many arguments.' );\n\t\t\t}\n\t\t} else {\n\t\t\targs = [];\n\t\t\tfor ( i = 1; i < nargs; i++ ) {\n\t\t\t\targs.push( arguments[ i ] );\n\t\t\t}\n\t\t}\n\t\ttry {\n\t\t\tS = args2multislice( args );\n\t\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\t\t// Search for the first offending value...\n\t\t\tfor ( i = 0; i < args.length; i++ ) {\n\t\t\t\ttry {\n\t\t\t\t\tnew MultiSlice( args[ i ] ); // eslint-disable-line no-new\n\t\t\t\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Slice arguments must be either a Slice, integer, null, or undefined. Value: `%s`.', String( args[ i ] ) ) );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn base( x, S, opts.strict, false );\n}\n\n\n// EXPORTS //\n\nmodule.exports = slice;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 read-only view of an input ndarray.\n*\n* @module @stdlib/ndarray/slice\n*\n* @example\n* var Slice = require( '@stdlib/slice/ctor' );\n* var MultiSlice = require( '@stdlib/slice/multi' );\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var slice = require( '@stdlib/ndarray/slice' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var s = new MultiSlice( new Slice( null, null, -2 ), new Slice( null, null, -1 ) );\n* // returns \n*\n* var y = slice( x, s );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 6.0, 5.0 ], [ 2.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 isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );\nvar isMultiSlice = require( '@stdlib/assert/is-multi-slice' );\nvar isArrayLikeObject = require( '@stdlib/assert/is-array-like-object' );\nvar isPlainObject = require( '@stdlib/assert/is-plain-object' );\nvar isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive;\nvar isReadOnly = require( './../../base/assert/is-read-only' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar MultiSlice = require( '@stdlib/slice/multi' );\nvar args2multislice = require( '@stdlib/slice/base/args2multislice' );\nvar base = require( './../../base/slice-assign' );\nvar getShape = require( './../../shape' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Assigns element values from a broadcasted input ndarray to corresponding elements in an output ndarray view.\n*\n* @param {ndarray} x - input array\n* @param {ndarray} y - output array\n* @param {...*} s - slice arguments\n* @param {Options} [options] - options\n* @param {boolean} [options.strict] - boolean indicating whether to enforce strict bounds checking\n* @throws {TypeError} first argument must be an ndarray\n* @throws {TypeError} second argument must be an ndarray\n* @throws {TypeError} must provide valid slice arguments\n* @throws {Error} insufficient arguments\n* @throws {Error} too many arguments\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {RangeError} number of slice dimensions must match the number of output array dimensions\n* @throws {RangeError} slice exceeds array bounds\n* @throws {Error} input array must be broadcast compatible with an output array view\n* @throws {TypeError} input array cannot be safely cast to the output array data type\n* @throws {Error} cannot write to a read-only ndarray\n* @returns {ndarray} output array\n*\n* @example\n* var Slice = require( '@stdlib/slice/ctor' );\n* var MultiSlice = require( '@stdlib/slice/multi' );\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndzeros = require( '@stdlib/ndarray/zeros' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n*\n* // Define an input array:\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* // Define an output array:\n* var y = ndzeros( [ 2, 3, 2 ], {\n* 'dtype': x.dtype\n* });\n*\n* // Create a slice:\n* var s0 = null;\n* var s1 = new Slice( null, null, -1 );\n* var s2 = new Slice( null, null, -1 );\n* var s = new MultiSlice( s0, s1, s2 );\n* // returns \n*\n* // Perform assignment:\n* var out = sliceAssign( x, y, s );\n* // returns \n*\n* var bool = ( out === y );\n* // returns true\n*\n* arr = ndarray2array( y );\n* // returns [ [ [ 6.0, 5.0 ], [ 4.0, 3.0 ], [ 2.0, 1.0 ] ], [ [ 6.0, 5.0 ], [ 4.0, 3.0 ], [ 2.0, 1.0 ] ] ]\n*/\nfunction sliceAssign( x, y, s ) {\n\tvar options;\n\tvar nargs;\n\tvar opts;\n\tvar args;\n\tvar sh;\n\tvar S;\n\tvar i;\n\n\topts = {\n\t\t'strict': true\n\t};\n\tnargs = arguments.length;\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray. Value: `%s`.', x ) );\n\t}\n\tif ( !isndarrayLike( y ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an ndarray. Value: `%s`.', y ) );\n\t}\n\tif ( isReadOnly( y ) ) {\n\t\tthrow new Error( 'invalid argument. Cannot write to a read-only array.' );\n\t}\n\tif ( isPlainObject( arguments[ nargs-1 ] ) ) {\n\t\tnargs -= 1;\n\t\toptions = arguments[ nargs ];\n\t\tif ( hasOwnProp( options, 'strict' ) ) {\n\t\t\tif ( !isBoolean( options.strict ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'strict', options.strict ) );\n\t\t\t}\n\t\t\topts.strict = options.strict;\n\t\t}\n\t\tsh = getShape( y );\n\t\tif ( nargs === 2 && sh.length > 0 ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Number of slice dimensions does not match the number of array dimensions. Array shape: (%s). Slice dimensions: %u.', sh.join( ',' ), 0 ) );\n\t\t}\n\t}\n\tif ( isMultiSlice( s ) ) {\n\t\tS = s;\n\t\tif ( nargs > 3 ) {\n\t\t\tthrow new Error( 'invalid invocation. Too many arguments.' );\n\t\t}\n\t} else {\n\t\tif ( isArrayLikeObject( s ) ) {\n\t\t\targs = s;\n\t\t\tif ( nargs > 3 ) {\n\t\t\t\tthrow new Error( 'invalid invocation. Too many arguments.' );\n\t\t\t}\n\t\t} else {\n\t\t\targs = [];\n\t\t\tfor ( i = 2; i < nargs; i++ ) {\n\t\t\t\targs.push( arguments[ i ] );\n\t\t\t}\n\t\t}\n\t\ttry {\n\t\t\tS = args2multislice( args );\n\t\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\t\t// Search for the first offending value...\n\t\t\tfor ( i = 0; i < args.length; i++ ) {\n\t\t\t\ttry {\n\t\t\t\t\tnew MultiSlice( args[ i ] ); // eslint-disable-line no-new\n\t\t\t\t} catch ( err ) { // eslint-disable-line no-unused-vars\n\t\t\t\t\tthrow new TypeError( format( 'invalid argument. Slice arguments must be either a Slice, integer, null, or undefined. Value: `%s`.', String( args[ i ] ) ) );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn base( x, y, S, opts.strict );\n}\n\n\n// EXPORTS //\n\nmodule.exports = sliceAssign;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Assign element values from a broadcasted input ndarray to corresponding elements in an output ndarray view.\n*\n* @module @stdlib/ndarray/slice-assign\n*\n* @example\n* var Slice = require( '@stdlib/slice/ctor' );\n* var MultiSlice = require( '@stdlib/slice/multi' );\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndzeros = require( '@stdlib/ndarray/zeros' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var sliceAssign = require( '@stdlib/ndarray/slice-assign' );\n*\n* // Define an input array:\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* // Define an output array:\n* var y = ndzeros( [ 2, 3, 2 ], {\n* 'dtype': x.dtype\n* });\n*\n* // Create a slice:\n* var s0 = null;\n* var s1 = new Slice( null, null, -1 );\n* var s2 = new Slice( null, null, -1 );\n* var s = new MultiSlice( s0, s1, s2 );\n* // returns \n*\n* // Perform assignment:\n* var out = sliceAssign( x, y, s );\n* // returns \n*\n* var bool = ( out === y );\n* // returns true\n*\n* arr = ndarray2array( y );\n* // returns [ [ [ 6.0, 5.0 ], [ 4.0, 3.0 ], [ 2.0, 1.0 ] ], [ [ 6.0, 5.0 ], [ 4.0, 3.0 ], [ 2.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 isPlainObject = require( '@stdlib/assert/is-plain-object' );\nvar isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive;\nvar isInteger = require( '@stdlib/assert/is-integer' ).isPrimitive;\nvar isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );\nvar isUndefined = require( '@stdlib/assert/is-undefined' );\nvar isSlice = require( '@stdlib/assert/is-slice' );\nvar isNull = require( '@stdlib/assert/is-null' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar Slice = require( '@stdlib/slice/ctor' );\nvar base = require( './../../base/slice-dimension' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns a read-only view of an input ndarray when sliced along a specified dimension.\n*\n* @param {ndarray} x - input array\n* @param {integer} dim - index of dimension to slice\n* @param {(Slice|integer|null|undefined)} s - slice argument\n* @param {Options} [options] - options\n* @param {boolean} [options.strict] - boolean indicating whether to enforce strict bounds checking\n* @throws {TypeError} first argument must be an ndarray having one or more dimensions\n* @throws {TypeError} second argument must be an integer\n* @throws {TypeError} third argument must be either a Slice, integer, null, or undefined\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {RangeError} dimension index exceeds the number of dimensions\n* @throws {RangeError} slice exceeds array bounds\n* @returns {ndarray} ndarray view\n*\n* @example\n* var Slice = require( '@stdlib/slice/ctor' );\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var s = new Slice( null, null, -1 );\n* // returns \n*\n* var y = sliceDimension( x, 0, s );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 3, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 5.0, 6.0 ], [ 3.0, 4.0 ], [ 1.0, 2.0 ] ]\n*/\nfunction sliceDimension( x, dim, s ) {\n\tvar options;\n\tvar slice;\n\tvar opts;\n\n\topts = {\n\t\t'strict': true\n\t};\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray. Value: `%s`.', x ) );\n\t}\n\tif ( !isInteger( dim ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', dim ) );\n\t}\n\tif ( isInteger( s ) || isSlice( s ) ) {\n\t\tslice = s;\n\t} else if ( isNull( s ) || isUndefined( s ) ) {\n\t\tslice = new Slice();\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be either a Slice, integer, null, or undefined. Value: `%s`.', s ) );\n\t}\n\tif ( arguments.length > 3 ) {\n\t\toptions = arguments[ 3 ];\n\t\tif ( !isPlainObject( options ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t\t}\n\t\tif ( hasOwnProp( options, 'strict' ) ) {\n\t\t\tif ( !isBoolean( options.strict ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'strict', options.strict ) );\n\t\t\t}\n\t\t\topts.strict = options.strict;\n\t\t}\n\t}\n\treturn base( x, dim, slice, opts.strict, false );\n}\n\n\n// EXPORTS //\n\nmodule.exports = sliceDimension;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 read-only view of an input ndarray when sliced along a specified dimension.\n*\n* @module @stdlib/ndarray/slice-dimension\n*\n* @example\n* var Slice = require( '@stdlib/slice/ctor' );\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var sliceDimension = require( '@stdlib/ndarray/slice-dimension' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var s = new Slice( null, null, -1 );\n* // returns \n*\n* var y = sliceDimension( x, 0, s );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 3, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 5.0, 6.0 ], [ 3.0, 4.0 ], [ 1.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 isPlainObject = require( '@stdlib/assert/is-plain-object' );\nvar isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive;\nvar isInteger = require( '@stdlib/assert/is-integer' ).isPrimitive;\nvar isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar base = require( './../../base/slice-dimension-from' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns a read-only shifted view of an input ndarray along a specified dimension.\n*\n* @param {ndarray} x - input array\n* @param {integer} dim - index of dimension to slice\n* @param {integer} start - starting index (inclusive)\n* @param {Options} [options] - options\n* @param {boolean} [options.strict] - boolean indicating whether to enforce strict bounds checking\n* @throws {TypeError} first argument must be an ndarray having one or more dimensions\n* @throws {TypeError} second argument must be an integer\n* @throws {TypeError} third argument must be an integer\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {RangeError} dimension index exceeds the number of dimensions\n* @throws {RangeError} slice exceeds array bounds\n* @returns {ndarray} ndarray view\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = sliceDimensionFrom( x, 0, 1 );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*/\nfunction sliceDimensionFrom( x, dim, start ) {\n\tvar options;\n\tvar opts;\n\n\topts = {\n\t\t'strict': true\n\t};\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray. Value: `%s`.', x ) );\n\t}\n\tif ( !isInteger( dim ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', dim ) );\n\t}\n\tif ( !isInteger( start ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an integer. Value: `%s`.', start ) );\n\t}\n\tif ( arguments.length > 3 ) {\n\t\toptions = arguments[ 3 ];\n\t\tif ( !isPlainObject( options ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t\t}\n\t\tif ( hasOwnProp( options, 'strict' ) ) {\n\t\t\tif ( !isBoolean( options.strict ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'strict', options.strict ) );\n\t\t\t}\n\t\t\topts.strict = options.strict;\n\t\t}\n\t}\n\treturn base( x, dim, start, opts.strict, false );\n}\n\n\n// EXPORTS //\n\nmodule.exports = sliceDimensionFrom;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 read-only shifted view of an input ndarray along a specified dimension.\n*\n* @module @stdlib/ndarray/slice-dimension-from\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var sliceDimensionFrom = require( '@stdlib/ndarray/slice-dimension-from' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = sliceDimensionFrom( x, 0, 1 );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 3.0, 4.0 ], [ 5.0, 6.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 isPlainObject = require( '@stdlib/assert/is-plain-object' );\nvar isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive;\nvar isInteger = require( '@stdlib/assert/is-integer' ).isPrimitive;\nvar isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar base = require( './../../base/slice-dimension-to' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Returns a read-only truncated view of an input ndarray along a specified dimension.\n*\n* @param {ndarray} x - input array\n* @param {integer} dim - index of dimension to slice\n* @param {integer} stop - ending index (exclusive)\n* @param {Options} [options] - options\n* @param {boolean} [options.strict] - boolean indicating whether to enforce strict bounds checking\n* @throws {TypeError} first argument must be an ndarray having one or more dimensions\n* @throws {TypeError} second argument must be an integer\n* @throws {TypeError} third argument must be an integer\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {RangeError} dimension index exceeds the number of dimensions\n* @throws {RangeError} slice exceeds array bounds\n* @returns {ndarray} ndarray view\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = sliceDimensionTo( x, 0, 2 );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* arr = ndarray2array( y );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ]\n*/\nfunction sliceDimensionTo( x, dim, stop ) {\n\tvar options;\n\tvar opts;\n\n\topts = {\n\t\t'strict': true\n\t};\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray. Value: `%s`.', x ) );\n\t}\n\tif ( !isInteger( dim ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', dim ) );\n\t}\n\tif ( !isInteger( stop ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an integer. Value: `%s`.', stop ) );\n\t}\n\tif ( arguments.length > 3 ) {\n\t\toptions = arguments[ 3 ];\n\t\tif ( !isPlainObject( options ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t\t}\n\t\tif ( hasOwnProp( options, 'strict' ) ) {\n\t\t\tif ( !isBoolean( options.strict ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'strict', options.strict ) );\n\t\t\t}\n\t\t\topts.strict = options.strict;\n\t\t}\n\t}\n\treturn base( x, dim, stop, opts.strict, false );\n}\n\n\n// EXPORTS //\n\nmodule.exports = sliceDimensionTo;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 read-only truncated view of an input ndarray along a specified dimension.\n*\n* @module @stdlib/ndarray/slice-dimension-to\n*\n* @example\n* var ndarray = require( '@stdlib/ndarray/ctor' );\n* var ndarray2array = require( '@stdlib/ndarray/to-array' );\n* var sliceDimensionTo = require( '@stdlib/ndarray/slice-dimension-to' );\n*\n* var buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ];\n* var shape = [ 3, 2 ];\n* var strides = [ 2, 1 ];\n* var offset = 0;\n*\n* var x = ndarray( 'generic', buffer, shape, strides, offset, 'row-major' );\n* // returns \n*\n* var sh = x.shape;\n* // returns [ 3, 2 ]\n*\n* var arr = ndarray2array( x );\n* // returns [ [ 1.0, 2.0 ], [ 3.0, 4.0 ], [ 5.0, 6.0 ] ]\n*\n* var y = sliceDimensionTo( x, 0, 2 );\n* // returns \n*\n* sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* arr = ndarray2array( 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\t\"mode\": [ \"throw\" ],\n\t\"order\": \"row-major\"\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 isObject = require( '@stdlib/assert/is-plain-object' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar isArray = require( '@stdlib/assert/is-array' );\nvar isOrder = require( './../../base/assert/is-order' );\nvar isIndexMode = require( './../../base/assert/is-index-mode' );\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 {(StringArray|string)} [options.mode] - specifies how to handle subscripts which exceed array dimensions\n* @param {string} [options.order] - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'mode': 'throw',\n* 'order': 'column-major'\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tvar i;\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, 'mode' ) ) {\n\t\topts.mode = options.mode;\n\t\tif ( !isArray( opts.mode ) ) {\n\t\t\topts.mode = [ opts.mode ];\n\t\t} else if ( opts.mode.length === 0 ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option cannot be an empty array.', 'mode' ) );\n\t\t}\n\t\tfor ( i = 0; i < opts.mode.length; i++ ) {\n\t\t\tif ( !isIndexMode( opts.mode[ i ] ) ) {\n\t\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a supported/recognized mode. Option: `%s`.', 'mode', opts.mode[ i ] ) );\n\t\t\t}\n\t\t}\n\t}\n\tif ( hasOwnProp( options, 'order' ) ) {\n\t\topts.order = options.order;\n\t\tif ( !isOrder( opts.order ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a supported/recognized order. Option: `%s`.', 'order', opts.order ) );\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// MODULES //\n\nvar isNonNegativeIntegerArray = require( '@stdlib/assert/is-nonnegative-integer-array' ).primitives;\nvar isInteger = require( '@stdlib/assert/is-integer' ).isPrimitive;\nvar shape2strides = require( './../../base/shape2strides' );\nvar getIndex = require( './../../base/sub2ind' );\nvar format = require( '@stdlib/string/format' );\nvar defaults = require( './defaults.json' );\nvar validate = require( './validate.js' );\n\n\n// MAIN //\n\n/**\n* Converts subscripts to a linear index.\n*\n* ## Notes\n*\n* - The function accepts the following \"modes\":\n*\n* - **throw**: throw an error when a subscript exceeds array dimensions.\n* - **normalize**: normalize negative subscripts and throw an error when a subscript exceeds array dimensions.\n* - **wrap**: wrap around subscripts exceeding array dimensions using modulo arithmetic.\n* - **clamp**: set subscripts exceeding array dimensions to either `0` (minimum index) or the maximum index along a particular dimension.\n*\n* - If provided fewer modes than dimensions, the function recycles modes using modulo arithmetic.\n*\n* @param {NonNegativeIntegerArray} shape - array shape\n* @param {...integer} i - subscripts\n* @param {Options} [options] - function options\n* @param {(StringArray|string)} [options.mode=[\"throw\"]] - specifies how to handle subscripts which exceed array dimensions\n* @param {string} [options.order=\"row-major\"] - specifies whether an array is row-major (C-style) or column-major (Fortran-style)\n* @throws {TypeError} first argument must be an array-like object containing nonnegative integers\n* @throws {TypeError} subscripts must be integer valued\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @throws {RangeError} must provide subscripts which do not exceed array dimensions\n* @throws {RangeError} number of subscripts much match the number of dimensions\n* @returns {NonNegativeInteger} linear index\n*\n* @example\n* var i = sub2ind( [ 3, 3, 3 ], 1, 2, 2 );\n* // returns 17\n*/\nfunction sub2ind() {\n\tvar options;\n\tvar shape;\n\tvar ndims;\n\tvar args;\n\tvar opts;\n\tvar err;\n\tvar len;\n\tvar i;\n\tvar j;\n\n\tshape = arguments[ 0 ];\n\tif ( !isNonNegativeIntegerArray( shape ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object containing nonnegative integers. Value: `%s`.', shape ) );\n\t}\n\tlen = arguments.length;\n\tndims = shape.length;\n\n\topts = {};\n\topts.mode = defaults.mode.slice();\n\topts.order = defaults.order;\n\n\tif ( len > ndims+1 ) {\n\t\tj = len - 1;\n\t\toptions = arguments[ j ];\n\t\terr = validate( opts, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t} else {\n\t\tj = len;\n\t}\n\ti = 1;\n\tif ( j-i !== ndims ) {\n\t\tthrow new RangeError( format( 'invalid argument. Number of provided subscripts must match the number of dimensions. ndims: `%u`. Number of subscripts: `%u`.', ndims, j-i ) );\n\t}\n\targs = new Array( ndims+4 );\n\targs[ 0 ] = shape;\n\targs[ 1 ] = shape2strides( shape, opts.order );\n\targs[ 2 ] = 0; // strides are positive, so offset is always zero\n\tfor ( ; i < j; i++ ) {\n\t\tif ( !isInteger( arguments[ i ] ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Subscripts must be integer valued. Argument: `%u`. Value: `%s`.', i, arguments[ i ] ) );\n\t\t}\n\t\targs[ i+2 ] = arguments[ i ];\n\t}\n\targs[ i+2 ] = opts.mode; // i+2 == args.length-1\n\treturn getIndex.apply( null, args );\n}\n\n\n// EXPORTS //\n\nmodule.exports = sub2ind;\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 subscripts to a linear index.\n*\n* @module @stdlib/ndarray/sub2ind\n*\n* @example\n* var sub2ind = require( '@stdlib/ndarray/sub2ind' );\n*\n* var i = sub2ind( [ 3, 3, 3 ], 1, 2, 2 );\n* // returns 17\n*/\n\n// MODULES //\n\nvar sub2ind = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = sub2ind;\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 isPlainObject = require( '@stdlib/assert/is-plain-object' );\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar isArrayLike = require( '@stdlib/assert/is-array-like' );\nvar shape2strides = require( './../../base/shape2strides' );\nvar strides2offset = require( './../../base/strides2offset' );\nvar buffer = require( './../../base/buffer' );\nvar numel = require( './../../base/numel' );\nvar ndarray = require( './../../ctor' );\nvar defaults = require( './../../defaults' );\nvar format = require( '@stdlib/string/format' );\n\n\n// VARIABLES //\n\nvar DTYPE = defaults.get( 'dtypes.default' );\nvar ORDER = defaults.get( 'order' );\n\n\n// MAIN //\n\n/**\n* Creates a zero-filled ndarray having a specified shape and data type.\n*\n* @param {(NonNegativeIntegerArray|NonNegativeInteger)} shape - array shape\n* @param {Options} [options] - options\n* @param {string} [options.dtype='float64'] - data type\n* @param {string} [options.order='row-major'] - array order\n* @param {string} [options.mode=\"throw\"] - specifies how to handle indices which exceed array dimensions\n* @param {StringArray} [options.submode=[\"throw\"]] - specifies how to handle subscripts which exceed array dimensions on a per dimension basis\n* @param {boolean} [options.readonly=false] - boolean indicating whether an array should be read-only\n* @throws {TypeError} first argument must be either a nonnegative integer or an array of nonnegative integers\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} `dtype` option must be a recognized data type\n* @throws {TypeError} `order` option must be a recognized array order\n* @throws {TypeError} must provide valid options\n* @returns {ndarray} ndarray\n*\n* @example\n* var arr = zeros( [ 2, 2 ] );\n* // returns \n*\n* var sh = arr.shape;\n* // returns [ 2, 2 ]\n*\n* var dt = arr.dtype;\n* // returns 'float64'\n*/\nfunction zeros( shape ) {\n\tvar options;\n\tvar dtype;\n\tvar order;\n\tvar ndims;\n\tvar opts;\n\tvar buf;\n\tvar len;\n\tvar st;\n\tvar sh;\n\n\topts = {};\n\tif ( arguments.length > 1 ) {\n\t\toptions = arguments[ 1 ];\n\t\tif ( !isPlainObject( options ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t\t}\n\t\tif ( hasOwnProp( options, 'dtype' ) ) {\n\t\t\tdtype = options.dtype;\n\t\t} else {\n\t\t\tdtype = DTYPE;\n\t\t}\n\t\tif ( hasOwnProp( options, 'order' ) ) {\n\t\t\torder = options.order;\n\t\t} else {\n\t\t\torder = ORDER;\n\t\t}\n\t\tif ( hasOwnProp( options, 'mode' ) ) {\n\t\t\topts.mode = options.mode;\n\t\t}\n\t\tif ( hasOwnProp( options, 'submode' ) ) {\n\t\t\topts.submode = options.submode;\n\t\t}\n\t\tif ( hasOwnProp( options, 'readonly' ) ) {\n\t\t\topts.readonly = options.readonly;\n\t\t}\n\t} else {\n\t\tdtype = DTYPE;\n\t\torder = ORDER;\n\t}\n\tif ( typeof shape === 'number' ) {\n\t\tsh = [ shape ];\n\t} else if ( isArrayLike( shape ) ) {\n\t\tsh = shape;\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be either a nonnegative integer or an array of nonnegative integers. Value: `%s`.', shape ) );\n\t}\n\tndims = sh.length;\n\tif ( ndims > 0 ) {\n\t\tlen = numel( sh );\n\t\tif ( len !== len || len < 0 ) {\n\t\t\t// We should only get here if we've been provided an invalid shape (e.g., an array containing negative integers, etc)...\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be either a nonnegative integer or an array of nonnegative integers. Value: `%s`.', shape ) );\n\t\t}\n\t\tst = shape2strides( sh, order );\n\t} else {\n\t\t// For 0-dimensional arrays, the buffer should contain a single element...\n\t\tlen = 1;\n\t\tst = [ 0 ];\n\t}\n\tbuf = buffer( dtype, len );\n\tif ( buf === null ) {\n\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a recognized data type. Option: `%s`.', 'dtype', dtype ) );\n\t}\n\treturn new ndarray( dtype, buf, sh, st, strides2offset( sh, st ), order, opts ); // eslint-disable-line max-len\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 ndarray having a specified shape and data type.\n*\n* @module @stdlib/ndarray/zeros\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n*\n* var arr = zeros( [ 2, 2 ], {\n* 'dtype': 'float32'\n* });\n* // returns \n*\n* var sh = arr.shape;\n* // returns [ 2, 2 ]\n*\n* var dt = arr.dtype;\n* // returns 'float32'\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 isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );\nvar isPlainObject = require( '@stdlib/assert/is-plain-object' );\nvar isNonNegativeIntegerArray = require( '@stdlib/assert/is-nonnegative-integer-array' ).primitives;\nvar hasOwnProp = require( '@stdlib/assert/has-own-property' );\nvar shape2strides = require( './../../base/shape2strides' );\nvar strides2offset = require( './../../base/strides2offset' );\nvar buffer = require( './../../base/buffer' );\nvar numel = require( './../../base/numel' );\nvar getDType = require( './../../dtype' );\nvar getShape = require( './../../shape' );\nvar getOrder = require( './../../order' );\nvar ndarray = require( './../../ctor' );\nvar format = require( '@stdlib/string/format' );\n\n\n// MAIN //\n\n/**\n* Creates a zero-filled ndarray having the same shape and data type as a provided ndarray.\n*\n* @param {ndarray} x - input array\n* @param {Options} [options] - function options\n* @param {string} [options.dtype] - output array data type (overrides the input array's inferred data type)\n* @param {string} [options.order] - specifies whether the output array should be 'row-major' (C-style) or 'column-major' (Fortran-style) (overrides the input array's inferred order)\n* @param {(NonNegativeIntegerArray|NonNegativeInteger)} [options.shape] - output array shape (overrides the input array's inferred shape)\n* @param {string} [options.mode=\"throw\"] - specifies how to handle indices which exceed array dimensions\n* @param {StringArray} [options.submode=[\"throw\"]] - specifies how to handle subscripts which exceed array dimensions on a per dimension basis\n* @param {boolean} [options.readonly=false] - boolean indicating whether an array should be read-only\n* @throws {TypeError} first argument must have a recognized data type\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} `dtype` option must be a supported ndarray data type\n* @throws {TypeError} `order` option must be a supported order\n* @throws {TypeError} `shape` option must be either a nonnegative integer or an array of nonnegative integers\n* @throws {TypeError} must provide valid options\n* @returns {ndarray} ndarray\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n*\n* var x = zeros( [ 2, 2 ] );\n* // returns \n*\n* var y = zerosLike( x );\n* // returns \n*\n* var sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* var dt = y.dtype;\n* // returns 'float64'\n*/\nfunction zerosLike( x ) {\n\tvar options;\n\tvar dtype;\n\tvar order;\n\tvar ndims;\n\tvar opts;\n\tvar buf;\n\tvar len;\n\tvar st;\n\tvar sh;\n\n\tif ( !isndarrayLike( x ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ndarray-like object. Value: `%s`.', x ) );\n\t}\n\topts = {};\n\tif ( arguments.length > 1 ) {\n\t\toptions = arguments[ 1 ];\n\t\tif ( !isPlainObject( options ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t\t}\n\t\tif ( hasOwnProp( options, 'dtype' ) ) {\n\t\t\tdtype = options.dtype;\n\t\t} else {\n\t\t\tdtype = getDType( x );\n\t\t}\n\t\tif ( hasOwnProp( options, 'shape' ) ) {\n\t\t\tsh = options.shape;\n\t\t\tif ( typeof sh === 'number' ) {\n\t\t\t\tsh = [ sh ];\n\t\t\t}\n\t\t\tif ( !isNonNegativeIntegerArray( sh ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid option. `%s` option must be a nonnegative integer or an array of nonnegative integers. Option: `%s`.', 'shape', sh ) );\n\t\t\t}\n\t\t} else {\n\t\t\tsh = getShape( x );\n\t\t}\n\t\tif ( hasOwnProp( options, 'order' ) ) {\n\t\t\torder = options.order;\n\t\t} else {\n\t\t\torder = getOrder( x );\n\t\t}\n\t\tif ( hasOwnProp( options, 'mode' ) ) {\n\t\t\topts.mode = options.mode;\n\t\t}\n\t\tif ( hasOwnProp( options, 'submode' ) ) {\n\t\t\topts.submode = options.submode;\n\t\t}\n\t\tif ( hasOwnProp( options, 'readonly' ) ) {\n\t\t\topts.readonly = options.readonly;\n\t\t}\n\t} else {\n\t\tdtype = getDType( x );\n\t\tsh = getShape( x );\n\t\torder = getOrder( x );\n\t}\n\tndims = sh.length;\n\tif ( ndims > 0 ) {\n\t\tlen = numel( sh );\n\t\tst = shape2strides( sh, order );\n\t} else {\n\t\t// For 0-dimensional arrays, the buffer should contain a single element...\n\t\tlen = 1;\n\t\tst = [ 0 ];\n\t}\n\tbuf = buffer( dtype, len );\n\tif ( buf === null ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must have a recognized data type. Value: `%s`.', dtype ) );\n\t}\n\treturn new ndarray( dtype, buf, sh, st, strides2offset( sh, st ), order, opts ); // eslint-disable-line max-len\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 ndarray having the same shape and data type as a provided ndarray.\n*\n* @module @stdlib/ndarray/zeros-like\n*\n* @example\n* var zeros = require( '@stdlib/ndarray/zeros' );\n* var zerosLike = require( '@stdlib/ndarray/zeros-like' );\n*\n* var x = zeros( [ 2, 2 ] );\n* // returns \n*\n* var y = zerosLike( x );\n* // returns \n*\n* var sh = y.shape;\n* // returns [ 2, 2 ]\n*\n* var dt = y.dtype;\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) 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// 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 array\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/array}\n*/\nsetReadOnly( ns, 'array', require( './../array' ) );\n\n/**\n* @name base\n* @memberof ns\n* @readonly\n* @type {Namespace}\n* @see {@link module:@stdlib/ndarray/base}\n*/\nsetReadOnly( ns, 'base', require( './../base' ) );\n\n/**\n* @name broadcastArray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/broadcast-array}\n*/\nsetReadOnly( ns, 'broadcastArray', require( './../broadcast-array' ) );\n\n/**\n* @name ndarrayCastingModes\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/casting-modes}\n*/\nsetReadOnly( ns, 'ndarrayCastingModes', require( './../casting-modes' ) );\n\n/**\n* @name ndarray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/ctor}\n*/\nsetReadOnly( ns, 'ndarray', require( './../ctor' ) );\n\n/**\n* @name ndarrayDataBuffer\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/data-buffer}\n*/\nsetReadOnly( ns, 'ndarrayDataBuffer', require( './../data-buffer' ) );\n\n/**\n* @name defaults\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/defaults}\n*/\nsetReadOnly( ns, 'defaults', require( './../defaults' ) );\n\n/**\n* @name dispatch\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/dispatch}\n*/\nsetReadOnly( ns, 'dispatch', require( './../dispatch' ) );\n\n/**\n* @name ndarrayDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/dtype}\n*/\nsetReadOnly( ns, 'ndarrayDataType', require( './../dtype' ) );\n\n/**\n* @name ndarrayDataTypes\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/dtypes}\n*/\nsetReadOnly( ns, 'ndarrayDataTypes', require( './../dtypes' ) );\n\n/**\n* @name ndempty\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/empty}\n*/\nsetReadOnly( ns, 'ndempty', require( './../empty' ) );\n\n/**\n* @name ndemptyLike\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/empty-like}\n*/\nsetReadOnly( ns, 'ndemptyLike', require( './../empty-like' ) );\n\n/**\n* @name FancyArray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/fancy}\n*/\nsetReadOnly( ns, 'FancyArray', require( './../fancy' ) );\n\n/**\n* @name scalar2ndarray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/from-scalar}\n*/\nsetReadOnly( ns, 'scalar2ndarray', require( './../from-scalar' ) );\n\n/**\n* @name ind2sub\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/ind2sub}\n*/\nsetReadOnly( ns, 'ind2sub', require( './../ind2sub' ) );\n\n/**\n* @name ndarrayIndexModes\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/index-modes}\n*/\nsetReadOnly( ns, 'ndarrayIndexModes', require( './../index-modes' ) );\n\n/**\n* @name iter\n* @memberof ns\n* @readonly\n* @type {Namespace}\n* @see {@link module:@stdlib/ndarray/iter}\n*/\nsetReadOnly( ns, 'iter', require( './../iter' ) );\n\n/**\n* @name maybeBroadcastArray\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/maybe-broadcast-array}\n*/\nsetReadOnly( ns, 'maybeBroadcastArray', require( './../maybe-broadcast-array' ) );\n\n/**\n* @name ndarrayMinDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/min-dtype}\n*/\nsetReadOnly( ns, 'ndarrayMinDataType', require( './../min-dtype' ) );\n\n/**\n* @name ndarrayMostlySafeCasts\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/mostly-safe-casts}\n*/\nsetReadOnly( ns, 'ndarrayMostlySafeCasts', require( './../mostly-safe-casts' ) );\n\n/**\n* @name ndims\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/ndims}\n*/\nsetReadOnly( ns, 'ndims', require( './../ndims' ) );\n\n/**\n* @name ndarrayNextDataType\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/next-dtype}\n*/\nsetReadOnly( ns, 'ndarrayNextDataType', require( './../next-dtype' ) );\n\n/**\n* @name numel\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/numel}\n*/\nsetReadOnly( ns, 'numel', require( './../numel' ) );\n\n/**\n* @name ndarrayOffset\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/offset}\n*/\nsetReadOnly( ns, 'ndarrayOffset', require( './../offset' ) );\n\n/**\n* @name ndarrayOrder\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/order}\n*/\nsetReadOnly( ns, 'ndarrayOrder', require( './../order' ) );\n\n/**\n* @name ndarrayOrders\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/orders}\n*/\nsetReadOnly( ns, 'ndarrayOrders', require( './../orders' ) );\n\n/**\n* @name ndarrayOutputDataTypePolicies\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/output-dtype-policies}\n*/\nsetReadOnly( ns, 'ndarrayOutputDataTypePolicies', require( './../output-dtype-policies' ) );\n\n/**\n* @name ndarrayPromotionRules\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/promotion-rules}\n*/\nsetReadOnly( ns, 'ndarrayPromotionRules', require( './../promotion-rules' ) );\n\n/**\n* @name ndarraySafeCasts\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/safe-casts}\n*/\nsetReadOnly( ns, 'ndarraySafeCasts', require( './../safe-casts' ) );\n\n/**\n* @name ndarraySameKindCasts\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/same-kind-casts}\n*/\nsetReadOnly( ns, 'ndarraySameKindCasts', require( './../same-kind-casts' ) );\n\n/**\n* @name ndarrayShape\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/shape}\n*/\nsetReadOnly( ns, 'ndarrayShape', require( './../shape' ) );\n\n/**\n* @name ndslice\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/slice}\n*/\nsetReadOnly( ns, 'ndslice', require( './../slice' ) );\n\n/**\n* @name ndsliceAssign\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/slice-assign}\n*/\nsetReadOnly( ns, 'ndsliceAssign', require( './../slice-assign' ) );\n\n/**\n* @name ndsliceDimension\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/slice-dimension}\n*/\nsetReadOnly( ns, 'ndsliceDimension', require( './../slice-dimension' ) );\n\n/**\n* @name ndsliceDimensionFrom\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/slice-dimension-from}\n*/\nsetReadOnly( ns, 'ndsliceDimensionFrom', require( './../slice-dimension-from' ) );\n\n/**\n* @name ndsliceDimensionTo\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/slice-dimension-to}\n*/\nsetReadOnly( ns, 'ndsliceDimensionTo', require( './../slice-dimension-to' ) );\n\n/**\n* @name ndarrayStrides\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/strides}\n*/\nsetReadOnly( ns, 'ndarrayStrides', require( './../strides' ) );\n\n/**\n* @name sub2ind\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/sub2ind}\n*/\nsetReadOnly( ns, 'sub2ind', require( './../sub2ind' ) );\n\n/**\n* @name ndarray2array\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/to-array}\n*/\nsetReadOnly( ns, 'ndarray2array', require( './../to-array' ) );\n\n/**\n* @name ndzeros\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/zeros}\n*/\nsetReadOnly( ns, 'ndzeros', require( './../zeros' ) );\n\n/**\n* @name ndzerosLike\n* @memberof ns\n* @readonly\n* @type {Function}\n* @see {@link module:@stdlib/ndarray/zeros-like}\n*/\nsetReadOnly( ns, 'ndzerosLike', require( './../zeros-like' ) );\n\n\n// EXPORTS //\n\nmodule.exports = ns;\n"], + "mappings": "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K,EAAGA,GAAKf,EAAIe,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKf,EAAIe,KAAO,CAC7B,IAAMD,GAAK,EAAGA,GAAKf,EAAIe,KACtBmB,GAAI1E,EAAK,KAAMC,EAASE,EAAMkD,EAAG,EAAGsB,GAAG,CAAEtB,GAAIC,EAAG,EAAG,CAAEzD,EAAGC,CAAE,CAAE,EACvD4E,KAAM,SACVtE,EAAMkD,EAAG,EAAIvD,EAAK2E,EAAE,GAErBrB,IAAMhD,EACNiD,IAAMxC,EACN6D,IAAK,EAENtB,IAAM/C,EACNgD,IAAMvC,CACP,CACAsC,IAAM9C,EACN+C,IAAMtC,CACP,CACAqC,IAAM7C,EACN8C,IAAMrC,CACP,CACAoC,IAAM5C,EACN6C,IAAMpC,CACP,CACAmC,IAAM3C,EACN4C,IAAMnC,CACP,CACAkC,IAAM1C,EACN2C,IAAMlC,CACP,CACAiC,IAAMzC,EACN0C,IAAMjC,CACP,CACAgC,IAAMxC,EACNyC,IAAMhC,CACP,CAUV,CAKA7B,GAAO,QAAUG,KCjXjB,IAAAgF,GAAAC,EAAA,SAAAC,IAAAC,GAAA,cAwBA,IAAIC,GAAY,KACZC,GAAY,KA6EhB,SAASC,GAAiBC,EAAGC,EAAGC,EAAKC,EAAMC,EAAU,CACpD,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GA2BJ,IA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", + "names": ["require_main", "__commonJSMin", "exports", "module", "rowmajor", "shape", "ndims", "out", "s", "i", "columnmajor", "shape2strides", "order", "require_assign", "__commonJSMin", "exports", "module", "rowmajor", "shape", "out", "ndims", "s", "i", "columnmajor", "shape2strides", "order", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "assign", "require_main", "__commonJSMin", "exports", "module", "strides2offset", "shape", "strides", "offset", "ndims", "i", "require_lib", "__commonJSMin", "exports", "module", "strides2offset", "require_main", "__commonJSMin", "exports", "module", "abs", "strides2order", "strides", "column", "ndims", "row", "s1", "s2", "i", "require_lib", "__commonJSMin", "exports", "module", "strides2order", "require_main", "__commonJSMin", "exports", "module", "numel", "shape", "ndims", "n", "require_lib", "__commonJSMin", "exports", "module", "main", "require_orders", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "ORDERS", "orders", "require_enum", "__commonJSMin", "exports", "module", "enumerated", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "enumeration", "require_main", "__commonJSMin", "exports", "module", "orders", "ORDERS", "len", "isOrder", "v", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_dtypes", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "DTYPES", "dtypes", "out", "require_enum", "__commonJSMin", "exports", "module", "enumeration", "require_assign", "__commonJSMin", "exports", "module", "setReadOnly", "objectKeys", "assign", "target", "source", "keys", "k", "i", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "enumeration", "assign", "require_main", "__commonJSMin", "exports", "module", "contains", "dtypes", "isDataType", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "minmaxViewBufferIndex", "shape", "strides", "offset", "ndims", "min", "max", "s", "i", "require_assign", "__commonJSMin", "exports", "module", "minmaxViewBufferIndex", "shape", "strides", "offset", "out", "ndims", "min", "max", "i", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "assign", "require_main", "__commonJSMin", "exports", "module", "minmax", "isBufferLengthCompatible", "len", "shape", "strides", "offset", "buf", "require_lib", "__commonJSMin", "exports", "module", "main", "require_bytes_per_element", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "BYTES_PER_ELEMENT", "bytesPerElement", "dtype", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "iterationOrder", "strides", "cnt", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_is_column_major_contiguous", "__commonJSMin", "exports", "module", "isColumnMajorContiguous", "order", "contiguous", "require_is_row_major_contiguous", "__commonJSMin", "exports", "module", "isRowMajorContiguous", "order", "contiguous", "require_is_contiguous", "__commonJSMin", "exports", "module", "minmaxViewBufferIndex", "isContiguous", "len", "shape", "strides", "offset", "iterationOrder", "buf", "require_copy_flags", "__commonJSMin", "exports", "module", "copyFlags", "flags", "require_iget", "__commonJSMin", "exports", "module", "iget", "idx", "strides", "shape", "ndims", "ind", "s", "i", "require_iset", "__commonJSMin", "exports", "module", "iset", "idx", "v", "strides", "shape", "ndims", "ind", "s", "i", "require_set", "__commonJSMin", "exports", "module", "set", "idx", "i", "require_get", "__commonJSMin", "exports", "module", "get", "idx", "i", "require_tojson", "__commonJSMin", "exports", "module", "real", "imag", "toJSON", "out", "len", "v", "require_tostring", "__commonJSMin", "exports", "module", "replace", "real", "imag", "CTORS", "toString", "buffer", "ndims", "ctor", "str", "dt", "v", "i", "require_modes", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "MODES", "modes", "require_enum", "__commonJSMin", "exports", "module", "enumerated", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "modes", "enumeration", "require_meta2dataview", "__commonJSMin", "exports", "module", "IS_LITTLE_ENDIAN", "ArrayBuffer", "DataView", "BigInt", "dtypes", "orders", "modes", "DTYPES", "ORDERS", "MODES", "meta2dataview", "nbytes", "flgs", "len", "dt", "sh", "st", "sm", "v", "m", "o", "s", "N", "M", "i", "require_meta2dataview_polyfill", "__commonJSMin", "exports", "module", "IS_LITTLE_ENDIAN", "ArrayBuffer", "DataView", "Uint8Array", "dtypes", "orders", "modes", "float64ToInt64Bytes", "DTYPES", "ORDERS", "MODES", "meta2dataview", "nbytes", "bytes", "flgs", "len", "dt", "sh", "st", "sm", "v", "m", "o", "s", "N", "M", "i", "require_main", "__commonJSMin", "exports", "module", "hasBigIntSupport", "setReadOnly", "setReadOnlyAccessor", "bytesPerElement", "iterationOrder", "strides2order", "Boolean", "isColumnMajorContiguous", "isRowMajorContiguous", "isContiguous", "copyFlags", "igetValue", "isetValue", "setValue", "getValue", "toJSON", "toString", "meta2dataview", "meta2dataviewPolyfill", "ndarray", "dtype", "buffer", "shape", "strides", "offset", "order", "contiguous", "nbytes", "ord", "len", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "defaults", "require_get", "__commonJSMin", "exports", "module", "defaults", "DEFAULTS", "HASH", "get", "name", "v", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "get", "require_main", "__commonJSMin", "exports", "module", "clampIndex", "idx", "max", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "wrapIndex", "idx", "max", "mp1", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "normalizeIndex", "idx", "max", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "contains", "modes", "isIndexMode", "require_lib", "__commonJSMin", "exports", "module", "main", "require_factory", "__commonJSMin", "exports", "module", "clampIndex", "wrapIndex", "normalize", "isIndexMode", "format", "TABLE", "normalizeIndex", "throwIfOutOfBounds", "idx", "max", "index", "factory", "mode", "require_main", "__commonJSMin", "exports", "module", "clampIndex", "wrapIndex", "normalizeIndex", "format", "ind", "idx", "max", "mode", "index", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "factory", "main", "require_iget", "__commonJSMin", "exports", "module", "isInteger", "getIndex", "parent", "format", "base", "iget", "idx", "require_iset", "__commonJSMin", "exports", "module", "isInteger", "getIndex", "parent", "format", "base", "iset", "idx", "v", "require_get", "__commonJSMin", "exports", "module", "isInteger", "getIndex", "format", "get", "idx", "ind", "M", "require_set", "__commonJSMin", "exports", "module", "isInteger", "getIndex", "format", "set", "idx", "ind", "M", "require_copy_array", "__commonJSMin", "exports", "module", "copy", "arr", "len", "out", "require_validate", "__commonJSMin", "exports", "module", "isObject", "hasOwnProp", "isArray", "isIndexMode", "isBoolean", "format", "validate", "opts", "options", "i", "require_main", "__commonJSMin", "exports", "module", "setReadOnly", "isCollection", "isNonNegativeIntegerArray", "isNonNegativeInteger", "isIntegerArray", "isFunction", "isOrder", "isDataType", "isBufferLengthCompatible", "numel", "parent", "defaults", "inherit", "format", "iget", "iset", "get", "set", "copy", "validate", "MAX_DIMS", "INDEX_MODE", "READONLY", "ndarray", "dtype", "buffer", "shape", "strides", "offset", "order", "options", "ndims", "opts", "err", "sh", "st", "require_lib", "__commonJSMin", "exports", "module", "main", "require_modes", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "MODES", "modes", "require_enum", "__commonJSMin", "exports", "module", "enumerated", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "modes", "enumeration", "require_main", "__commonJSMin", "exports", "module", "modes", "MODES", "len", "isCastingMode", "v", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "objectInverse", "enumeration", "hash", "enum2str", "dtype", "v", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "enumeration", "ENUM", "str2enum", "dtype", "v", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "enum2str", "str2enum", "resolve", "dtype", "t", "require_lib", "__commonJSMin", "exports", "module", "main", "require_safe_casts", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "objectKeys", "hasOwnProp", "resolve", "SAFE_CASTS", "TABLE", "generateFullTable", "dtypes", "ntypes", "out", "tmp", "dt1", "dt2", "j", "i", "generateTable", "safeCasts", "dtype", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "safeCasts", "TABLE", "isSafeCast", "from", "to", "require_lib", "__commonJSMin", "exports", "module", "main", "require_data", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "objectKeys", "hasOwnProp", "resolve", "CASTS", "TABLE", "generateFullTable", "dtypes", "ntypes", "out", "tmp", "dt1", "dt2", "j", "i", "generateTable", "mostlySafeCasts", "dtype", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "casts", "TABLE", "isMostlySafeCast", "from", "to", "require_lib", "__commonJSMin", "exports", "module", "main", "require_same_kind_casts", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "objectKeys", "hasOwnProp", "resolve", "SAME_KIND_CASTS", "TABLE", "generateFullTable", "dtypes", "ntypes", "out", "tmp", "dt1", "dt2", "j", "i", "generateTable", "sameKindCasts", "dtype", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "sameKindCasts", "TABLE", "isSameKindCast", "from", "to", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isSafeCast", "isMostlySafeCast", "isSameKindCast", "isAllowedCast", "from", "to", "casting", "require_lib", "__commonJSMin", "exports", "module", "main", "require_ctors", "__commonJSMin", "exports", "module", "Buffer", "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_zeros", "__commonJSMin", "exports", "module", "zeros", "v", "i", "require_main", "__commonJSMin", "exports", "module", "bufferCtors", "allocUnsafe", "zeros", "generic", "size", "buf", "i", "binary", "typedarray", "dtype", "ctor", "buffer", "require_lib", "__commonJSMin", "exports", "module", "main", "require_ctor2dtype", "__commonJSMin", "exports", "module", "dtypes", "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", "isDataType", "format", "dtype", "x", "dt", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isNonNegativeInteger", "isCollection", "format", "shape", "x", "out", "sh", "d", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isInteger", "isCollection", "isOrder", "shape2strides", "format", "strides", "x", "out", "ord", "sh", "st", "d", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isNonNegativeInteger", "isCollection", "strides2offset", "format", "offset", "x", "st", "sh", "n", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isNonNegativeInteger", "isCollection", "format", "ndims", "x", "sh", "n", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isOrder", "strides", "ndims", "strides2order", "format", "ROW_MAJOR", "COLUMN_MAJOR", "order", "x", "st", "o", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isCollection", "format", "data", "x", "out", "require_lib", "__commonJSMin", "exports", "module", "main", "require_is_array_like_object", "__commonJSMin", "exports", "module", "PINF", "isInteger", "isArrayLikeObject", "value", "require_defaults", "__commonJSMin", "exports", "module", "settings", "defaults", "require_cast_buffer", "__commonJSMin", "exports", "module", "bufferCtors", "allocUnsafe", "castBuffer", "buffer", "len", "dtype", "ctor", "out", "i", "require_copy_view", "__commonJSMin", "exports", "module", "arraylike2object", "castReturn", "complexCtors", "bufferCtors", "allocUnsafe", "ndarray", "getDType", "getShape", "getStrides", "getOffset", "getOrder", "getData", "generic", "arr", "len", "out", "binary", "typed", "dtype", "ctor", "set", "fcn", "o", "i", "wrapper", "copyView", "x", "require_expand_shape", "__commonJSMin", "exports", "module", "expandShape", "ndims", "shape", "ndmin", "out", "i", "require_expand_strides", "__commonJSMin", "exports", "module", "abs", "expandStrides", "ndims", "shape", "strides", "order", "out", "N", "s", "i", "j", "require_main", "__commonJSMin", "exports", "module", "hasOwnProp", "isObject", "isBoolean", "isArray", "isNonNegativeInteger", "isndarrayLike", "shape2strides", "strides2offset", "strides2order", "numel", "ndarray", "isDataType", "isOrder", "isCastingMode", "isAllowedCast", "createBuffer", "getBufferDType", "getDType", "getShape", "getStrides", "getOffset", "getOrder", "getData", "arrayShape", "flatten", "format", "isArrayLikeObject", "getDefaults", "castBuffer", "copyView", "expandShape", "expandStrides", "defaults", "array", "options", "strides", "buffer", "offset", "order", "dtype", "btype", "shape", "ndims", "nopts", "opts", "osh", "len", "ord", "FLG", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "numel", "isBufferLengthCompatibleShape", "len", "shape", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "abs", "isColumnMajor", "strides", "ndims", "s1", "s2", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "numel", "minmax", "isSingleSegmentCompatible", "shape", "strides", "offset", "len", "buf", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isSingleSegmentCompatible", "iterationOrder", "isColumnMajor", "isColumnMajorContiguous", "shape", "strides", "offset", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "contains", "dtypes", "isComplexFloatingPointDataType", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isSingleSegmentCompatible", "iterationOrder", "isContiguous", "shape", "strides", "offset", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "contains", "dtypes", "isFloatingPointDataType", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "contains", "dtypes", "isIntegerDataType", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "contains", "dtypes", "isNumericDataType", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isReadOnly", "arr", "flags", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "contains", "dtypes", "isRealDataType", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "contains", "dtypes", "isRealFloatingPointDataType", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "abs", "isRowMajor", "strides", "ndims", "s1", "s2", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isSingleSegmentCompatible", "iterationOrder", "isRowMajor", "isRowMajorContiguous", "shape", "strides", "offset", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "contains", "dtypes", "isSignedIntegerDataType", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "contains", "dtypes", "isUnsignedIntegerDataType", "require_lib", "__commonJSMin", "exports", "module", "main", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "ns", "require_main", "__commonJSMin", "exports", "module", "dtype", "x", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "copyIndexed", "shape", "x", "copy", "sh", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "shape2strides", "copyIndexed", "ROW_MAJOR", "strides", "x", "copy", "ord", "sh", "st", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "strides2offset", "offset", "x", "st", "sh", "o", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "strides2order", "ROW_MAJOR", "COLUMN_MAJOR", "order", "x", "st", "o", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "data", "x", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isAccessorArray", "accessorGetter", "accessorSetter", "getter", "setter", "numel", "getDType", "getShape", "getStrides", "getOffset", "getOrder", "getData", "ndarraylike2object", "x", "xbuf", "bool", "sh", "dt", "require_lib", "__commonJSMin", "exports", "module", "main", "require_sort2ins", "__commonJSMin", "exports", "module", "sort2ins", "x", "y", "avx", "aux", "ix", "iy", "jx", "jy", "vx", "vy", "ux", "i", "require_main", "__commonJSMin", "exports", "module", "zeroTo", "copy", "take", "sort2ins", "loopOrder", "sh", "sx", "sy", "idx", "require_lib", "__commonJSMin", "exports", "module", "main", "require_defaults", "__commonJSMin", "exports", "module", "defaults", "require_main", "__commonJSMin", "exports", "module", "bytesPerElement", "defaults", "unaryBlockSize", "dtypeX", "dtypeY", "nbx", "nby", "require_lib", "__commonJSMin", "exports", "module", "main", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedassign2d", "x", "y", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dy0", "dy1", "ox1", "oy1", "sh", "s0", "s1", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "j0", "j1", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedassign3d", "x", "y", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dy0", "dy1", "dy2", "ox1", "ox2", "oy1", "oy2", "sh", "s0", "s1", "s2", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "j0", "j1", "j2", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedassign4d", "x", "y", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dy0", "dy1", "dy2", "dy3", "ox1", "ox2", "ox3", "oy1", "oy2", "oy3", "sh", "s0", "s1", "s2", "s3", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "j0", "j1", "j2", "j3", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedassign5d", "x", "y", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dy0", "dy1", "dy2", "dy3", "dy4", "ox1", "ox2", "ox3", "ox4", "oy1", "oy2", "oy3", "oy4", "sh", "s0", "s1", "s2", "s3", "s4", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "j0", "j1", "j2", "j3", "j4", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedassign6d", "x", "y", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "ox1", "ox2", "ox3", "ox4", "ox5", "oy1", "oy2", "oy3", "oy4", "oy5", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "j0", "j1", "j2", "j3", "j4", "j5", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedassign7d", "x", "y", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedassign8d", "x", "y", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "oy7", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedassign9d", "x", "y", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "ox8", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "oy7", "oy8", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "j8", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedassign10d", "x", "y", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dx9", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "dy9", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "ox8", "ox9", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "oy7", "oy8", "oy9", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "s9", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "i9", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "j8", "j9", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedassign2d", "x", "y", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dy0", "dy1", "ox1", "oy1", "sh", "s0", "s1", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "j0", "j1", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedassign3d", "x", "y", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dy0", "dy1", "dy2", "ox1", "ox2", "oy1", "oy2", "sh", "s0", "s1", "s2", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "j0", "j1", "j2", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedassign4d", "x", "y", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dy0", "dy1", "dy2", "dy3", "ox1", "ox2", "ox3", "oy1", "oy2", "oy3", "sh", "s0", "s1", "s2", "s3", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "j0", "j1", "j2", "j3", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedassign5d", "x", "y", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dy0", "dy1", "dy2", "dy3", "dy4", "ox1", "ox2", "ox3", "ox4", "oy1", "oy2", "oy3", "oy4", "sh", "s0", "s1", "s2", "s3", "s4", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "j0", "j1", "j2", "j3", "j4", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedassign6d", "x", "y", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "ox1", "ox2", "ox3", "ox4", "ox5", "oy1", "oy2", "oy3", "oy4", "oy5", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "j0", "j1", "j2", "j3", "j4", "j5", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedassign7d", "x", "y", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedassign8d", "x", "y", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "oy7", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedassign9d", "x", "y", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "ox8", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "oy7", "oy8", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "j8", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedassign10d", "x", "y", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dx9", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "dy9", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "ox8", "ox9", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "oy7", "oy8", "oy9", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "s9", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "i9", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "j8", "j9", "o", "require_d_accessors", "__commonJSMin", "exports", "module", "assign0d", "x", "y", "require_d_accessors", "__commonJSMin", "exports", "module", "assign1d", "x", "y", "xbuf", "ybuf", "get", "set", "dx0", "dy0", "S0", "ix", "iy", "i0", "require_d_accessors", "__commonJSMin", "exports", "module", "assign2d", "x", "y", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dy0", "dy1", "sh", "S0", "S1", "sx", "sy", "ix", "iy", "i0", "i1", "require_d_accessors", "__commonJSMin", "exports", "module", "assign3d", "x", "y", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dy0", "dy1", "dy2", "sh", "S0", "S1", "S2", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "require_d_accessors", "__commonJSMin", "exports", "module", "assign4d", "x", "y", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dy0", "dy1", "dy2", "dy3", "sh", "S0", "S1", "S2", "S3", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "require_d_accessors", "__commonJSMin", "exports", "module", "assign5d", "x", "y", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dy0", "dy1", "dy2", "dy3", "dy4", "sh", "S0", "S1", "S2", "S3", "S4", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "require_d_accessors", "__commonJSMin", "exports", "module", "assign6d", "x", "y", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "require_d_accessors", "__commonJSMin", "exports", "module", "assign7d", "x", "y", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "require_d_accessors", "__commonJSMin", "exports", "module", "assign8d", "x", "y", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "require_d_accessors", "__commonJSMin", "exports", "module", "assign9d", "x", "y", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "require_d_accessors", "__commonJSMin", "exports", "module", "assign10d", "x", "y", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dx9", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "dy9", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "S9", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "i9", "require_main", "__commonJSMin", "exports", "module", "format", "vind2bind", "shape", "strides", "offset", "order", "idx", "mode", "ndims", "len", "ind", "s", "i", "require_lib", "__commonJSMin", "exports", "module", "vind2bind", "require_nd_accessors", "__commonJSMin", "exports", "module", "numel", "vind2bind", "MODE", "assignnd", "x", "y", "xbuf", "ybuf", "ordx", "ordy", "len", "get", "set", "sh", "sx", "sy", "ox", "oy", "ix", "iy", "i", "require_d", "__commonJSMin", "exports", "module", "assign0d", "x", "y", "require_d", "__commonJSMin", "exports", "module", "assign1d", "x", "y", "xbuf", "ybuf", "dx0", "dy0", "S0", "ix", "iy", "i0", "require_d", "__commonJSMin", "exports", "module", "assign2d", "x", "y", "xbuf", "ybuf", "dx0", "dx1", "dy0", "dy1", "sh", "S0", "S1", "sx", "sy", "ix", "iy", "i0", "i1", "require_d", "__commonJSMin", "exports", "module", "assign3d", "x", "y", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dy0", "dy1", "dy2", "sh", "S0", "S1", "S2", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "require_d", "__commonJSMin", "exports", "module", "assign4d", "x", "y", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dy0", "dy1", "dy2", "dy3", "sh", "S0", "S1", "S2", "S3", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "require_d", "__commonJSMin", "exports", "module", "assign5d", "x", "y", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dy0", "dy1", "dy2", "dy3", "dy4", "sh", "S0", "S1", "S2", "S3", "S4", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "require_d", "__commonJSMin", "exports", "module", "assign6d", "x", "y", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "require_d", "__commonJSMin", "exports", "module", "assign7d", "x", "y", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "require_d", "__commonJSMin", "exports", "module", "assign8d", "x", "y", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "require_d", "__commonJSMin", "exports", "module", "assign9d", "x", "y", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "require_d", "__commonJSMin", "exports", "module", "assign10d", "x", "y", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dx9", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "dy9", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "S9", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "i9", "require_nd", "__commonJSMin", "exports", "module", "numel", "vind2bind", "MODE", "assignnd", "x", "y", "xbuf", "ybuf", "ordx", "ordy", "len", "sh", "sx", "sy", "ox", "oy", "ix", "iy", "i", "require_main", "__commonJSMin", "exports", "module", "isComplexDataType", "isRealDataType", "iterationOrder", "castReturn", "complexCtors", "minmaxViewBufferIndex", "ndarray2object", "blockedaccessorassign2d", "blockedaccessorassign3d", "blockedaccessorassign4d", "blockedaccessorassign5d", "blockedaccessorassign6d", "blockedaccessorassign7d", "blockedaccessorassign8d", "blockedaccessorassign9d", "blockedaccessorassign10d", "blockedassign2d", "blockedassign3d", "blockedassign4d", "blockedassign5d", "blockedassign6d", "blockedassign7d", "blockedassign8d", "blockedassign9d", "blockedassign10d", "accessorassign0d", "accessorassign1d", "accessorassign2d", "accessorassign3d", "accessorassign4d", "accessorassign5d", "accessorassign6d", "accessorassign7d", "accessorassign8d", "accessorassign9d", "accessorassign10d", "accessorassignnd", "assign0d", "assign1d", "assign2d", "assign3d", "assign4d", "assign5d", "assign6d", "assign7d", "assign8d", "assign9d", "assign10d", "assignnd", "ASSIGN", "ACCESSOR_ASSIGN", "BLOCKED_ASSIGN", "BLOCKED_ACCESSOR_ASSIGN", "MAX_DIMS", "assign", "arrays", "ndims", "xmmv", "ymmv", "shx", "shy", "iox", "ioy", "len", "sx", "sy", "ox", "oy", "ns", "x", "y", "d", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_sort2ins", "__commonJSMin", "exports", "module", "sort2ins", "x", "y", "avx", "aux", "ix", "iy", "jx", "jy", "vx", "vy", "ux", "i", "require_main", "__commonJSMin", "exports", "module", "zeroTo", "copy", "take", "filled", "strides2order", "sort2ins", "N", "loopOrder", "sh", "sx", "sy", "sz", "idx", "tmp", "max", "len", "arr", "ox", "oy", "oz", "i", "j", "require_lib", "__commonJSMin", "exports", "module", "main", "require_defaults", "__commonJSMin", "exports", "module", "defaults", "require_main", "__commonJSMin", "exports", "module", "bytesPerElement", "defaults", "binaryBlockSize", "dtypeX", "dtypeY", "dtypeZ", "nbx", "nby", "nbz", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "format", "trunc", "abs", "bind2vind", "shape", "strides", "offset", "order", "idx", "mode", "ndims", "len", "ind", "k", "s", "i", "require_lib", "__commonJSMin", "exports", "module", "bind2vind", "require_main", "__commonJSMin", "exports", "module", "copy", "ndarray", "getShape", "getStrides", "getOffset", "getOrder", "getDType", "getData", "format", "broadcastArray", "arr", "shape", "strides", "dim", "sh", "st", "N", "M", "d", "i", "j", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isAccessorArray", "accessorSetter", "setter", "zeros", "buffer", "ndarray", "format", "broadcastScalar", "value", "dtype", "shape", "order", "buf", "set", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "broadcastShapes", "shapes", "ndims", "out", "dim", "sh", "n1", "n2", "d", "M", "N", "i", "j", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "str2enum", "dtype", "dtypeEnum", "arr", "dt", "require_lib", "__commonJSMin", "exports", "module", "main", "require_table", "__commonJSMin", "exports", "module", "table", "require_main", "__commonJSMin", "exports", "module", "resolve", "table", "TABLE", "dtypeChar", "dtype", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "objectInverse", "dtypeChar", "TABLE", "char2dtype", "ch", "require_lib", "__commonJSMin", "exports", "module", "char2dtype", "require_table", "__commonJSMin", "exports", "module", "table", "require_main", "__commonJSMin", "exports", "module", "resolve", "table", "TABLE", "dtypeDesc", "dtype", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "enum2str", "str2enum", "resolve", "dtype", "t", "require_lib", "__commonJSMin", "exports", "module", "main", "require_table", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "resolve", "TABLE", "dtype2c", "dtype", "require_lib", "__commonJSMin", "exports", "module", "dtype2c", "require_main", "__commonJSMin", "exports", "module", "isArrayLikeObject", "isNonNegativeInteger", "resolve", "format", "dtypes2signatures", "dtypes", "nin", "nout", "len", "out", "tmp", "dt", "N", "M", "i", "m", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "shape2strides", "strides2offset", "ndarray", "numel", "emptyArray", "allocUnsafe", "empty", "dtype", "shape", "order", "ndims", "buf", "len", "st", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "shape2strides", "strides2offset", "numel", "getDType", "getShape", "getOrder", "emptyArray", "allocUnsafe", "emptyLike", "x", "ndims", "len", "buf", "ord", "sh", "st", "dt", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isReadOnly", "getDType", "getShape", "getStrides", "getOffset", "getOrder", "getData", "format", "expandDimensions", "x", "axis", "strides", "shape", "ord", "sh", "st", "N", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_slice_start", "__commonJSMin", "exports", "module", "sliceStart", "slice", "strides", "offset", "data", "idx", "i", "require_slice_strides", "__commonJSMin", "exports", "module", "slice2strides", "slice", "strides", "rdims", "data", "out", "i", "j", "require_empty", "__commonJSMin", "exports", "module", "buffer", "zeros", "empty", "ctor", "dtype", "shape", "order", "readonly", "strides", "ndims", "require_main", "__commonJSMin", "exports", "module", "normalizeMultiSlice", "nonreducedDimensions", "sliceShape", "take", "zeros", "numel", "getDType", "getShape", "getStrides", "getOffset", "getOrder", "getData", "format", "sliceStart", "slice2strides", "empty", "slice", "x", "s", "strict", "writable", "strides", "offset", "dtype", "shape", "order", "sdims", "ndims", "ctor", "sh", "ns", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "ndims", "x", "n", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "args2multislice", "Slice", "slice", "filled", "ndims", "format", "reverseDimension", "x", "dim", "writable", "args", "N", "d", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "MultiSlice", "reverseDimension", "slice", "ndims", "fliplr", "x", "writable", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "MultiSlice", "reverseDimension", "slice", "ndims", "flipud", "x", "writable", "N", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isAccessorArray", "accessorSetter", "setter", "buffer", "ndarray", "format", "scalar2ndarray", "value", "dtype", "order", "buf", "set", "require_lib", "__commonJSMin", "exports", "module", "main", "require_assign", "__commonJSMin", "exports", "module", "format", "trunc", "ind2sub", "shape", "strides", "offset", "order", "idx", "mode", "out", "ndims", "len", "k", "s", "i", "require_main", "__commonJSMin", "exports", "module", "zeros", "getSubscripts", "ind2sub", "shape", "strides", "offset", "order", "idx", "mode", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "assign", "require_main", "__commonJSMin", "exports", "module", "maxViewBufferIndex", "shape", "strides", "offset", "ndims", "idx", "i", "require_lib", "__commonJSMin", "exports", "module", "maxViewBufferIndex", "require_main", "__commonJSMin", "exports", "module", "broadcast", "getShape", "maybeBroadcastArray", "arr", "shape", "sh", "N", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "setReadOnly", "setReadOnlyAccessor", "dtypes2signatures", "setProps", "meta", "dtypes", "obj", "types", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "minViewBufferIndex", "shape", "strides", "offset", "ndims", "idx", "i", "require_lib", "__commonJSMin", "exports", "module", "minViewBufferIndex", "require_assign", "__commonJSMin", "exports", "module", "ROW_MAJOR", "rowmajor", "ndims", "shape", "idx", "dim", "out", "i", "j", "columnmajor", "nextCartesianIndex", "order", "require_main", "__commonJSMin", "exports", "module", "zeros", "assign", "nextCartesianIndex", "shape", "order", "idx", "dim", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "assign", "require_main", "__commonJSMin", "exports", "module", "nonsingletonDimensions", "shape", "cnt", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_sort2ins", "__commonJSMin", "exports", "module", "sort2ins", "x", "y", "avx", "aux", "ix", "iy", "jx", "jy", "vx", "vy", "ux", "i", "require_main", "__commonJSMin", "exports", "module", "zeroTo", "copy", "take", "sort2ins", "loopOrder", "sh", "sx", "idx", "require_lib", "__commonJSMin", "exports", "module", "main", "require_defaults", "__commonJSMin", "exports", "module", "defaults", "require_main", "__commonJSMin", "exports", "module", "bytesPerElement", "defaults", "nullaryBlockSize", "dtypeX", "nbx", "require_lib", "__commonJSMin", "exports", "module", "main", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockednullary2d", "x", "fcn", "bsize", "xbuf", "set", "dx0", "dx1", "ox1", "sh", "s0", "s1", "sx", "ox", "ix", "i0", "i1", "j0", "j1", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockednullary3d", "x", "fcn", "bsize", "xbuf", "set", "dx0", "dx1", "dx2", "ox1", "ox2", "sh", "s0", "s1", "s2", "sx", "ox", "ix", "i0", "i1", "i2", "j0", "j1", "j2", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockednullary4d", "x", "fcn", "bsize", "xbuf", "set", "dx0", "dx1", "dx2", "dx3", "ox1", "ox2", "ox3", "sh", "s0", "s1", "s2", "s3", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "j0", "j1", "j2", "j3", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockednullary5d", "x", "fcn", "bsize", "xbuf", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "ox1", "ox2", "ox3", "ox4", "sh", "s0", "s1", "s2", "s3", "s4", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "i4", "j0", "j1", "j2", "j3", "j4", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockednullary6d", "x", "fcn", "bsize", "xbuf", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "ox1", "ox2", "ox3", "ox4", "ox5", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "j0", "j1", "j2", "j3", "j4", "j5", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockednullary7d", "x", "fcn", "bsize", "xbuf", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockednullary8d", "x", "fcn", "bsize", "xbuf", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockednullary9d", "x", "fcn", "bsize", "xbuf", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "ox8", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "j8", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockednullary10d", "x", "fcn", "bsize", "xbuf", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dx9", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "ox8", "ox9", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "s9", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "i9", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "j8", "j9", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockednullary2d", "x", "fcn", "bsize", "xbuf", "dx0", "dx1", "ox1", "sh", "s0", "s1", "sx", "ox", "ix", "i0", "i1", "j0", "j1", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockednullary3d", "x", "fcn", "bsize", "xbuf", "dx0", "dx1", "dx2", "ox1", "ox2", "sh", "s0", "s1", "s2", "sx", "ox", "ix", "i0", "i1", "i2", "j0", "j1", "j2", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockednullary4d", "x", "fcn", "bsize", "xbuf", "dx0", "dx1", "dx2", "dx3", "ox1", "ox2", "ox3", "sh", "s0", "s1", "s2", "s3", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "j0", "j1", "j2", "j3", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockednullary5d", "x", "fcn", "bsize", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "ox1", "ox2", "ox3", "ox4", "sh", "s0", "s1", "s2", "s3", "s4", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "i4", "j0", "j1", "j2", "j3", "j4", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockednullary6d", "x", "fcn", "bsize", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "ox1", "ox2", "ox3", "ox4", "ox5", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "j0", "j1", "j2", "j3", "j4", "j5", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockednullary7d", "x", "fcn", "bsize", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockednullary8d", "x", "fcn", "bsize", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockednullary9d", "x", "fcn", "bsize", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "ox8", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "j8", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockednullary10d", "x", "fcn", "bsize", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dx9", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "ox8", "ox9", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "s9", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "i9", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "j8", "j9", "o", "require_d_accessors", "__commonJSMin", "exports", "module", "nullary0d", "x", "fcn", "require_d_accessors", "__commonJSMin", "exports", "module", "nullary1d", "x", "fcn", "xbuf", "set", "dx0", "S0", "ix", "i0", "require_d_accessors", "__commonJSMin", "exports", "module", "nullary2d", "x", "fcn", "xbuf", "set", "dx0", "dx1", "sh", "S0", "S1", "sx", "ix", "i0", "i1", "require_d_accessors", "__commonJSMin", "exports", "module", "nullary3d", "x", "fcn", "xbuf", "set", "dx0", "dx1", "dx2", "sh", "S0", "S1", "S2", "sx", "ix", "i0", "i1", "i2", "require_d_accessors", "__commonJSMin", "exports", "module", "nullary4d", "x", "fcn", "xbuf", "set", "dx0", "dx1", "dx2", "dx3", "sh", "S0", "S1", "S2", "S3", "sx", "ix", "i0", "i1", "i2", "i3", "require_d_accessors", "__commonJSMin", "exports", "module", "nullary5d", "x", "fcn", "xbuf", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "sh", "S0", "S1", "S2", "S3", "S4", "sx", "ix", "i0", "i1", "i2", "i3", "i4", "require_d_accessors", "__commonJSMin", "exports", "module", "nullary6d", "x", "fcn", "xbuf", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "sx", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "require_d_accessors", "__commonJSMin", "exports", "module", "nullary7d", "x", "fcn", "xbuf", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "sx", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "require_d_accessors", "__commonJSMin", "exports", "module", "nullary8d", "x", "fcn", "xbuf", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "sx", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "require_d_accessors", "__commonJSMin", "exports", "module", "nullary9d", "x", "fcn", "xbuf", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "sx", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "require_d_accessors", "__commonJSMin", "exports", "module", "nullary10d", "x", "fcn", "xbuf", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dx9", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "S9", "sx", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "i9", "require_nd_accessors", "__commonJSMin", "exports", "module", "numel", "vind2bind", "MODE", "nullarynd", "x", "fcn", "xbuf", "ordx", "len", "set", "sh", "sx", "ox", "ix", "i", "require_d", "__commonJSMin", "exports", "module", "nullary0d", "x", "fcn", "require_d", "__commonJSMin", "exports", "module", "nullary1d", "x", "fcn", "xbuf", "dx0", "S0", "ix", "i0", "require_d", "__commonJSMin", "exports", "module", "nullary2d", "x", "fcn", "xbuf", "dx0", "dx1", "sh", "S0", "S1", "sx", "ix", "i0", "i1", "require_d", "__commonJSMin", "exports", "module", "nullary3d", "x", "fcn", "xbuf", "dx0", "dx1", "dx2", "sh", "S0", "S1", "S2", "sx", "ix", "i0", "i1", "i2", "require_d", "__commonJSMin", "exports", "module", "nullary4d", "x", "fcn", "xbuf", "dx0", "dx1", "dx2", "dx3", "sh", "S0", "S1", "S2", "S3", "sx", "ix", "i0", "i1", "i2", "i3", "require_d", "__commonJSMin", "exports", "module", "nullary5d", "x", "fcn", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "sh", "S0", "S1", "S2", "S3", "S4", "sx", "ix", "i0", "i1", "i2", "i3", "i4", "require_d", "__commonJSMin", "exports", "module", "nullary6d", "x", "fcn", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "sx", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "require_d", "__commonJSMin", "exports", "module", "nullary7d", "x", "fcn", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "sx", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "require_d", "__commonJSMin", "exports", "module", "nullary8d", "x", "fcn", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "sx", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "require_d", "__commonJSMin", "exports", "module", "nullary9d", "x", "fcn", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "sx", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "require_d", "__commonJSMin", "exports", "module", "nullary10d", "x", "fcn", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dx9", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "S9", "sx", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "i9", "require_nd", "__commonJSMin", "exports", "module", "numel", "vind2bind", "MODE", "nullarynd", "x", "fcn", "xbuf", "ordx", "len", "sh", "sx", "ox", "ix", "i", "require_main", "__commonJSMin", "exports", "module", "iterationOrder", "minmaxViewBufferIndex", "ndarray2object", "blockedaccessornullary2d", "blockedaccessornullary3d", "blockedaccessornullary4d", "blockedaccessornullary5d", "blockedaccessornullary6d", "blockedaccessornullary7d", "blockedaccessornullary8d", "blockedaccessornullary9d", "blockedaccessornullary10d", "blockednullary2d", "blockednullary3d", "blockednullary4d", "blockednullary5d", "blockednullary6d", "blockednullary7d", "blockednullary8d", "blockednullary9d", "blockednullary10d", "accessornullary0d", "accessornullary1d", "accessornullary2d", "accessornullary3d", "accessornullary4d", "accessornullary5d", "accessornullary6d", "accessornullary7d", "accessornullary8d", "accessornullary9d", "accessornullary10d", "accessornullarynd", "nullary0d", "nullary1d", "nullary2d", "nullary3d", "nullary4d", "nullary5d", "nullary6d", "nullary7d", "nullary8d", "nullary9d", "nullary10d", "nullarynd", "NULLARY", "ACCESSOR_NULLARY", "BLOCKED_NULLARY", "BLOCKED_ACCESSOR_NULLARY", "MAX_DIMS", "nullary", "arrays", "fcn", "ndims", "xmmv", "shx", "iox", "len", "sx", "ox", "ns", "x", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_policies", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "POLICIES", "policies", "require_enum", "__commonJSMin", "exports", "module", "enumeration", "require_assign", "__commonJSMin", "exports", "module", "setReadOnly", "objectKeys", "assign", "target", "source", "keys", "k", "i", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "enumeration", "assign", "require_main", "__commonJSMin", "exports", "module", "objectInverse", "enumeration", "hash", "enum2str", "policy", "v", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "enumeration", "ENUM", "str2enum", "policy", "v", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "enum2str", "str2enum", "resolve", "policy", "t", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "enum2str", "str2enum", "resolve", "policy", "t", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isReadOnly", "getDType", "getShape", "getStrides", "getOffset", "getOrder", "getData", "prependSingletonDimensions", "x", "n", "strides", "shape", "sh", "st", "N", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isReadOnly", "getDType", "getShape", "getStrides", "getOffset", "getOrder", "getData", "removeSingletonDimensions", "x", "strides", "shape", "sh", "st", "N", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "args2multislice", "Slice", "filled", "slice", "ndims", "reverse", "x", "writable", "args", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "IS_LITTLE_ENDIAN", "ArrayBuffer", "DataView", "BigInt", "bytesPerElement", "dtypes", "orders", "modes", "getDType", "getShape", "getStrides", "getOffset", "getOrder", "DTYPES", "ORDERS", "MODES", "serialize", "x", "nbytes", "flgs", "len", "dt", "sh", "st", "sm", "v", "m", "o", "s", "N", "M", "i", "require_polyfill", "__commonJSMin", "exports", "module", "IS_LITTLE_ENDIAN", "float64ToInt64Bytes", "ArrayBuffer", "Uint8Array", "DataView", "bytesPerElement", "dtypes", "orders", "modes", "getDType", "getShape", "getStrides", "getOffset", "getOrder", "DTYPES", "ORDERS", "MODES", "serialize", "x", "nbytes", "bytes", "flgs", "len", "dt", "sh", "st", "sm", "v", "m", "o", "s", "N", "M", "i", "require_lib", "__commonJSMin", "exports", "module", "hasBigIntSupport", "builtin", "polyfill", "main", "require_main", "__commonJSMin", "exports", "module", "singletonDimensions", "shape", "cnt", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isMostlySafeCast", "broadcast", "assign", "slice", "getDType", "getShape", "format", "sliceAssign", "x", "y", "s", "strict", "view", "xdt", "ydt", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "args2multislice", "ndims", "slice", "normalizeIndex", "filled", "format", "sliceDimension", "x", "dim", "s", "strict", "writable", "args", "N", "d", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "args2multislice", "Slice", "ndims", "slice", "normalizeIndex", "filled", "format", "sliceDimensionFrom", "x", "dim", "start", "strict", "writable", "args", "N", "d", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "args2multislice", "Slice", "ndims", "slice", "normalizeIndex", "filled", "format", "sliceDimensionTo", "x", "dim", "stop", "strict", "writable", "args", "N", "d", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isNumber", "args2multislice", "Slice", "slice", "sliceFrom", "x", "start", "strict", "writable", "args", "s", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isNumber", "args2multislice", "Slice", "slice", "sliceTo", "x", "stop", "strict", "writable", "args", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "format", "sub2ind", "strides", "offset", "nmodes", "shape", "ndims", "modes", "mode", "idx", "m", "s", "j", "i", "require_lib", "__commonJSMin", "exports", "module", "sub2ind", "require_recurse", "__commonJSMin", "exports", "module", "recurse", "obj", "shape", "strides", "offset", "order", "dim", "stride", "item", "out", "n", "i", "require_main", "__commonJSMin", "exports", "module", "arraylike2object", "recurse", "ndarray2array", "buffer", "shape", "strides", "offset", "order", "i", "require_lib", "__commonJSMin", "exports", "module", "ndarray2array", "require_main", "__commonJSMin", "exports", "module", "strides2offset", "getDType", "getShape", "getStrides", "getOrder", "getData", "transpose", "x", "tmp", "sh", "st", "N", "require_lib", "__commonJSMin", "exports", "module", "main", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary2d", "x", "y", "fcn", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dy0", "dy1", "ox1", "oy1", "sh", "s0", "s1", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "j0", "j1", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary3d", "x", "y", "fcn", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dy0", "dy1", "dy2", "ox1", "ox2", "oy1", "oy2", "sh", "s0", "s1", "s2", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "j0", "j1", "j2", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary4d", "x", "y", "fcn", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dy0", "dy1", "dy2", "dy3", "ox1", "ox2", "ox3", "oy1", "oy2", "oy3", "sh", "s0", "s1", "s2", "s3", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "j0", "j1", "j2", "j3", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary5d", "x", "y", "fcn", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dy0", "dy1", "dy2", "dy3", "dy4", "ox1", "ox2", "ox3", "ox4", "oy1", "oy2", "oy3", "oy4", "sh", "s0", "s1", "s2", "s3", "s4", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "j0", "j1", "j2", "j3", "j4", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary6d", "x", "y", "fcn", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "ox1", "ox2", "ox3", "ox4", "ox5", "oy1", "oy2", "oy3", "oy4", "oy5", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "j0", "j1", "j2", "j3", "j4", "j5", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary7d", "x", "y", "fcn", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary8d", "x", "y", "fcn", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "oy7", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary9d", "x", "y", "fcn", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "ox8", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "oy7", "oy8", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "j8", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary10d", "x", "y", "fcn", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dx9", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "dy9", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "ox8", "ox9", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "oy7", "oy8", "oy9", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "s9", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "i9", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "j8", "j9", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary2d", "x", "y", "fcn", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dy0", "dy1", "ox1", "oy1", "sh", "s0", "s1", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "j0", "j1", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary3d", "x", "y", "fcn", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dy0", "dy1", "dy2", "ox1", "ox2", "oy1", "oy2", "sh", "s0", "s1", "s2", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "j0", "j1", "j2", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary4d", "x", "y", "fcn", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dy0", "dy1", "dy2", "dy3", "ox1", "ox2", "ox3", "oy1", "oy2", "oy3", "sh", "s0", "s1", "s2", "s3", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "j0", "j1", "j2", "j3", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary5d", "x", "y", "fcn", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dy0", "dy1", "dy2", "dy3", "dy4", "ox1", "ox2", "ox3", "ox4", "oy1", "oy2", "oy3", "oy4", "sh", "s0", "s1", "s2", "s3", "s4", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "j0", "j1", "j2", "j3", "j4", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary6d", "x", "y", "fcn", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "ox1", "ox2", "ox3", "ox4", "ox5", "oy1", "oy2", "oy3", "oy4", "oy5", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "j0", "j1", "j2", "j3", "j4", "j5", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary7d", "x", "y", "fcn", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary8d", "x", "y", "fcn", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "oy7", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary9d", "x", "y", "fcn", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "ox8", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "oy7", "oy8", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "j8", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary10d", "x", "y", "fcn", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dx9", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "dy9", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "ox8", "ox9", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "oy7", "oy8", "oy9", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "s9", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "i9", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "j8", "j9", "o", "require_d_accessors", "__commonJSMin", "exports", "module", "unary0d", "x", "y", "fcn", "require_d_accessors", "__commonJSMin", "exports", "module", "unary1d", "x", "y", "fcn", "xbuf", "ybuf", "get", "set", "dx0", "dy0", "S0", "ix", "iy", "i0", "require_d_accessors", "__commonJSMin", "exports", "module", "unary2d", "x", "y", "fcn", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dy0", "dy1", "sh", "S0", "S1", "sx", "sy", "ix", "iy", "i0", "i1", "require_d_accessors", "__commonJSMin", "exports", "module", "unary3d", "x", "y", "fcn", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dy0", "dy1", "dy2", "sh", "S0", "S1", "S2", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "require_d_accessors", "__commonJSMin", "exports", "module", "unary4d", "x", "y", "fcn", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dy0", "dy1", "dy2", "dy3", "sh", "S0", "S1", "S2", "S3", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "require_d_accessors", "__commonJSMin", "exports", "module", "unary5d", "x", "y", "fcn", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dy0", "dy1", "dy2", "dy3", "dy4", "sh", "S0", "S1", "S2", "S3", "S4", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "require_d_accessors", "__commonJSMin", "exports", "module", "unary6d", "x", "y", "fcn", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "require_d_accessors", "__commonJSMin", "exports", "module", "unary7d", "x", "y", "fcn", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "require_d_accessors", "__commonJSMin", "exports", "module", "unary8d", "x", "y", "fcn", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "require_d_accessors", "__commonJSMin", "exports", "module", "unary9d", "x", "y", "fcn", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "require_d_accessors", "__commonJSMin", "exports", "module", "unary10d", "x", "y", "fcn", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dx9", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "dy9", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "S9", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "i9", "require_nd_accessors", "__commonJSMin", "exports", "module", "numel", "vind2bind", "MODE", "unarynd", "x", "y", "fcn", "xbuf", "ybuf", "ordx", "ordy", "len", "get", "set", "sh", "sx", "sy", "ox", "oy", "ix", "iy", "i", "require_d", "__commonJSMin", "exports", "module", "unary0d", "x", "y", "fcn", "require_d", "__commonJSMin", "exports", "module", "unary1d", "x", "y", "fcn", "xbuf", "ybuf", "dx0", "dy0", "S0", "ix", "iy", "i0", "require_d", "__commonJSMin", "exports", "module", "unary2d", "x", "y", "fcn", "xbuf", "ybuf", "dx0", "dx1", "dy0", "dy1", "sh", "S0", "S1", "sx", "sy", "ix", "iy", "i0", "i1", "require_d", "__commonJSMin", "exports", "module", "unary3d", "x", "y", "fcn", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dy0", "dy1", "dy2", "sh", "S0", "S1", "S2", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "require_d", "__commonJSMin", "exports", "module", "unary4d", "x", "y", "fcn", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dy0", "dy1", "dy2", "dy3", "sh", "S0", "S1", "S2", "S3", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "require_d", "__commonJSMin", "exports", "module", "unary5d", "x", "y", "fcn", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dy0", "dy1", "dy2", "dy3", "dy4", "sh", "S0", "S1", "S2", "S3", "S4", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "require_d", "__commonJSMin", "exports", "module", "unary6d", "x", "y", "fcn", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "require_d", "__commonJSMin", "exports", "module", "unary7d", "x", "y", "fcn", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "require_d", "__commonJSMin", "exports", "module", "unary8d", "x", "y", "fcn", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "require_d", "__commonJSMin", "exports", "module", "unary9d", "x", "y", "fcn", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "require_d", "__commonJSMin", "exports", "module", "unary10d", "x", "y", "fcn", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dx9", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "dy9", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "S9", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "i9", "require_nd", "__commonJSMin", "exports", "module", "numel", "vind2bind", "MODE", "unarynd", "x", "y", "fcn", "xbuf", "ybuf", "ordx", "ordy", "len", "sh", "sx", "sy", "ox", "oy", "ix", "iy", "i", "require_main", "__commonJSMin", "exports", "module", "iterationOrder", "minmaxViewBufferIndex", "ndarray2object", "blockedaccessorunary2d", "blockedaccessorunary3d", "blockedaccessorunary4d", "blockedaccessorunary5d", "blockedaccessorunary6d", "blockedaccessorunary7d", "blockedaccessorunary8d", "blockedaccessorunary9d", "blockedaccessorunary10d", "blockedunary2d", "blockedunary3d", "blockedunary4d", "blockedunary5d", "blockedunary6d", "blockedunary7d", "blockedunary8d", "blockedunary9d", "blockedunary10d", "accessorunary0d", "accessorunary1d", "accessorunary2d", "accessorunary3d", "accessorunary4d", "accessorunary5d", "accessorunary6d", "accessorunary7d", "accessorunary8d", "accessorunary9d", "accessorunary10d", "accessorunarynd", "unary0d", "unary1d", "unary2d", "unary3d", "unary4d", "unary5d", "unary6d", "unary7d", "unary8d", "unary9d", "unary10d", "unarynd", "UNARY", "ACCESSOR_UNARY", "BLOCKED_UNARY", "BLOCKED_ACCESSOR_UNARY", "MAX_DIMS", "unary", "arrays", "fcn", "ndims", "xmmv", "ymmv", "shx", "shy", "iox", "ioy", "len", "sx", "sy", "ox", "oy", "ns", "x", "y", "d", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary2d", "x", "y", "fcn", "clbk", "thisArg", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dy0", "dy1", "ox1", "oy1", "sh", "s0", "s1", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "j0", "j1", "o", "v", "i", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary3d", "x", "y", "fcn", "clbk", "thisArg", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dy0", "dy1", "dy2", "ox1", "ox2", "oy1", "oy2", "sh", "s0", "s1", "s2", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "j0", "j1", "j2", "o", "v", "i", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary4d", "x", "y", "fcn", "clbk", "thisArg", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dy0", "dy1", "dy2", "dy3", "ox1", "ox2", "ox3", "oy1", "oy2", "oy3", "sh", "s0", "s1", "s2", "s3", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "j0", "j1", "j2", "j3", "o", "v", "i", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary5d", "x", "y", "fcn", "clbk", "thisArg", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dy0", "dy1", "dy2", "dy3", "dy4", "ox1", "ox2", "ox3", "ox4", "oy1", "oy2", "oy3", "oy4", "sh", "s0", "s1", "s2", "s3", "s4", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "j0", "j1", "j2", "j3", "j4", "o", "v", "i", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary6d", "x", "y", "fcn", "clbk", "thisArg", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "ox1", "ox2", "ox3", "ox4", "ox5", "oy1", "oy2", "oy3", "oy4", "oy5", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "j0", "j1", "j2", "j3", "j4", "j5", "o", "v", "i", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary7d", "x", "y", "fcn", "clbk", "thisArg", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "o", "v", "i", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary8d", "x", "y", "fcn", "clbk", "thisArg", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "oy7", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "o", "v", "i", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary9d", "x", "y", "fcn", "clbk", "thisArg", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "ox8", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "oy7", "oy8", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "j8", "o", "v", "i", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary10d", "x", "y", "fcn", "clbk", "thisArg", "bsize", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dx9", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "dy9", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "ox8", "ox9", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "oy7", "oy8", "oy9", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "s9", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "i9", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "j8", "j9", "o", "v", "i", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary2d", "x", "y", "fcn", "clbk", "thisArg", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dy0", "dy1", "ox1", "oy1", "sh", "s0", "s1", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "j0", "j1", "o", "v", "i", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary3d", "x", "y", "fcn", "clbk", "thisArg", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dy0", "dy1", "dy2", "ox1", "ox2", "oy1", "oy2", "sh", "s0", "s1", "s2", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "j0", "j1", "j2", "o", "v", "i", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary4d", "x", "y", "fcn", "clbk", "thisArg", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dy0", "dy1", "dy2", "dy3", "ox1", "ox2", "ox3", "oy1", "oy2", "oy3", "sh", "s0", "s1", "s2", "s3", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "j0", "j1", "j2", "j3", "o", "v", "i", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary5d", "x", "y", "fcn", "clbk", "thisArg", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dy0", "dy1", "dy2", "dy3", "dy4", "ox1", "ox2", "ox3", "ox4", "oy1", "oy2", "oy3", "oy4", "sh", "s0", "s1", "s2", "s3", "s4", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "j0", "j1", "j2", "j3", "j4", "o", "v", "i", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary6d", "x", "y", "fcn", "clbk", "thisArg", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "ox1", "ox2", "ox3", "ox4", "ox5", "oy1", "oy2", "oy3", "oy4", "oy5", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "j0", "j1", "j2", "j3", "j4", "j5", "o", "v", "i", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary7d", "x", "y", "fcn", "clbk", "thisArg", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "o", "v", "i", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary8d", "x", "y", "fcn", "clbk", "thisArg", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "oy7", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "o", "v", "i", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary9d", "x", "y", "fcn", "clbk", "thisArg", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "ox8", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "oy7", "oy8", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "j8", "o", "v", "i", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedunary10d", "x", "y", "fcn", "clbk", "thisArg", "bsize", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dx9", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "dy9", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "ox8", "ox9", "oy1", "oy2", "oy3", "oy4", "oy5", "oy6", "oy7", "oy8", "oy9", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "s9", "sx", "sy", "ox", "oy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "i9", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "j8", "j9", "o", "v", "i", "require_d_accessors", "__commonJSMin", "exports", "module", "unary0d", "x", "y", "fcn", "clbk", "thisArg", "ox", "oy", "v", "require_d_accessors", "__commonJSMin", "exports", "module", "unary1d", "x", "y", "fcn", "clbk", "thisArg", "xbuf", "ybuf", "get", "set", "dx0", "dy0", "S0", "ix", "iy", "i0", "v", "i", "require_d_accessors", "__commonJSMin", "exports", "module", "unary2d", "x", "y", "fcn", "clbk", "thisArg", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dy0", "dy1", "sh", "S0", "S1", "sx", "sy", "ix", "iy", "i0", "i1", "v", "i", "require_d_accessors", "__commonJSMin", "exports", "module", "unary3d", "x", "y", "fcn", "clbk", "thisArg", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dy0", "dy1", "dy2", "sh", "S0", "S1", "S2", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "v", "i", "require_d_accessors", "__commonJSMin", "exports", "module", "unary4d", "x", "y", "fcn", "clbk", "thisArg", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dy0", "dy1", "dy2", "dy3", "sh", "S0", "S1", "S2", "S3", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "v", "i", "require_d_accessors", "__commonJSMin", "exports", "module", "unary5d", "x", "y", "fcn", "clbk", "thisArg", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dy0", "dy1", "dy2", "dy3", "dy4", "sh", "S0", "S1", "S2", "S3", "S4", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "v", "i", "require_d_accessors", "__commonJSMin", "exports", "module", "unary6d", "x", "y", "fcn", "clbk", "thisArg", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "v", "i", "require_d_accessors", "__commonJSMin", "exports", "module", "unary7d", "x", "y", "fcn", "clbk", "thisArg", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "v", "i", "require_d_accessors", "__commonJSMin", "exports", "module", "unary8d", "x", "y", "fcn", "clbk", "thisArg", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "v", "i", "require_d_accessors", "__commonJSMin", "exports", "module", "unary9d", "x", "y", "fcn", "clbk", "thisArg", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "v", "i", "require_d_accessors", "__commonJSMin", "exports", "module", "unary10d", "x", "y", "fcn", "clbk", "thisArg", "xbuf", "ybuf", "get", "set", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dx9", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "dy9", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "S9", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "i9", "v", "i", "require_nd_accessors", "__commonJSMin", "exports", "module", "numel", "vind2bind", "MODE", "unarynd", "x", "y", "fcn", "clbk", "thisArg", "xbuf", "ybuf", "ordx", "ordy", "len", "get", "set", "sh", "sx", "sy", "ox", "oy", "ix", "iy", "v", "i", "require_d", "__commonJSMin", "exports", "module", "unary0d", "x", "y", "fcn", "clbk", "thisArg", "ox", "oy", "v", "require_d", "__commonJSMin", "exports", "module", "unary1d", "x", "y", "fcn", "clbk", "thisArg", "xbuf", "ybuf", "dx0", "dy0", "S0", "ix", "iy", "i0", "v", "i", "require_d", "__commonJSMin", "exports", "module", "unary2d", "x", "y", "fcn", "clbk", "thisArg", "xbuf", "ybuf", "dx0", "dx1", "dy0", "dy1", "sh", "S0", "S1", "sx", "sy", "ix", "iy", "i0", "i1", "v", "i", "require_d", "__commonJSMin", "exports", "module", "unary3d", "x", "y", "fcn", "clbk", "thisArg", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dy0", "dy1", "dy2", "sh", "S0", "S1", "S2", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "v", "i", "require_d", "__commonJSMin", "exports", "module", "unary4d", "x", "y", "fcn", "clbk", "thisArg", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dy0", "dy1", "dy2", "dy3", "sh", "S0", "S1", "S2", "S3", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "v", "i", "require_d", "__commonJSMin", "exports", "module", "unary5d", "x", "y", "fcn", "clbk", "thisArg", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dy0", "dy1", "dy2", "dy3", "dy4", "sh", "S0", "S1", "S2", "S3", "S4", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "v", "i", "require_d", "__commonJSMin", "exports", "module", "unary6d", "x", "y", "fcn", "clbk", "thisArg", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "v", "i", "require_d", "__commonJSMin", "exports", "module", "unary7d", "x", "y", "fcn", "clbk", "thisArg", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "v", "i", "require_d", "__commonJSMin", "exports", "module", "unary8d", "x", "y", "fcn", "clbk", "thisArg", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "v", "i", "require_d", "__commonJSMin", "exports", "module", "unary9d", "x", "y", "fcn", "clbk", "thisArg", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "v", "i", "require_d", "__commonJSMin", "exports", "module", "unary10d", "x", "y", "fcn", "clbk", "thisArg", "xbuf", "ybuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dx9", "dy0", "dy1", "dy2", "dy3", "dy4", "dy5", "dy6", "dy7", "dy8", "dy9", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "S9", "sx", "sy", "ix", "iy", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "i9", "v", "i", "require_nd", "__commonJSMin", "exports", "module", "numel", "vind2bind", "MODE", "unarynd", "x", "y", "fcn", "clbk", "thisArg", "xbuf", "ybuf", "ordx", "ordy", "len", "sh", "sx", "sy", "ox", "oy", "ix", "iy", "v", "i", "require_main", "__commonJSMin", "exports", "module", "iterationOrder", "minmaxViewBufferIndex", "ndarray2object", "blockedaccessorunary2d", "blockedaccessorunary3d", "blockedaccessorunary4d", "blockedaccessorunary5d", "blockedaccessorunary6d", "blockedaccessorunary7d", "blockedaccessorunary8d", "blockedaccessorunary9d", "blockedaccessorunary10d", "blockedunary2d", "blockedunary3d", "blockedunary4d", "blockedunary5d", "blockedunary6d", "blockedunary7d", "blockedunary8d", "blockedunary9d", "blockedunary10d", "accessorunary0d", "accessorunary1d", "accessorunary2d", "accessorunary3d", "accessorunary4d", "accessorunary5d", "accessorunary6d", "accessorunary7d", "accessorunary8d", "accessorunary9d", "accessorunary10d", "accessorunarynd", "unary0d", "unary1d", "unary2d", "unary3d", "unary4d", "unary5d", "unary6d", "unary7d", "unary8d", "unary9d", "unary10d", "unarynd", "UNARY", "ACCESSOR_UNARY", "BLOCKED_UNARY", "BLOCKED_ACCESSOR_UNARY", "MAX_DIMS", "unaryBy", "arrays", "fcn", "clbk", "thisArg", "ndims", "xmmv", "ymmv", "shx", "shy", "iox", "ioy", "len", "sx", "sy", "ox", "oy", "ns", "x", "y", "d", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isFloatingPointDataType", "isRealFloatingPointDataType", "isComplexFloatingPointDataType", "isIntegerDataType", "isSignedIntegerDataType", "isUnsignedIntegerDataType", "isRealDataType", "isNumericDataType", "isDataType", "defaults", "format", "POLICY_TABLE", "DEFAULT_DTYPE", "resolve", "dtype", "policy", "p", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "shape2strides", "strides2offset", "buffer", "format", "ndarray", "numel", "zeros", "dtype", "shape", "order", "ndims", "buf", "len", "st", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "shape2strides", "strides2offset", "buffer", "numel", "getDType", "getShape", "getOrder", "format", "zerosLike", "x", "ndims", "len", "buf", "ord", "sh", "st", "dt", "require_lib", "__commonJSMin", "exports", "module", "main", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "ns", "require_main", "__commonJSMin", "exports", "module", "isndarrayLike", "isCollection", "isNonNegativeInteger", "copy", "getDType", "getShape", "getStrides", "getOffset", "getOrder", "getData", "format", "broadcastArray", "x", "shape", "strides", "dim", "sh", "st", "N", "M", "d", "i", "j", "require_lib", "__commonJSMin", "exports", "module", "main", "require_index_of_types", "__commonJSMin", "exports", "module", "indexOfTypes", "N", "M", "x", "strideX1", "strideX2", "offsetX", "y", "strideY", "offsetY", "ix", "iy", "i", "j", "require_main", "__commonJSMin", "exports", "module", "isNonNegativeInteger", "isPositiveInteger", "isInteger", "isFunctionArray", "isFunction", "isCollection", "isndarrayLike", "format", "getDType", "resolveEnum", "indexOfTypes", "types2enums", "types", "out", "i", "dispatch", "fcns", "data", "nargs", "nin", "nout", "narrays", "nfcns", "fcn", "dispatcher", "arrays", "dtypes", "argc", "idx", "v", "f", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isPlainObject", "hasOwnProp", "isArrayLike", "shape2strides", "strides2offset", "emptyArray", "allocUnsafe", "numel", "ndarray", "defaults", "format", "DTYPE", "ORDER", "empty", "shape", "options", "dtype", "order", "ndims", "opts", "buf", "len", "st", "sh", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isndarrayLike", "isPlainObject", "isNonNegativeIntegerArray", "hasOwnProp", "shape2strides", "strides2offset", "numel", "getDType", "getShape", "getOrder", "ndarray", "emptyArray", "allocUnsafe", "format", "emptyLike", "x", "options", "dtype", "order", "ndims", "opts", "buf", "len", "st", "sh", "require_lib", "__commonJSMin", "exports", "module", "main", "require_re_integer", "__commonJSMin", "exports", "module", "RE_INTEGER", "require_re_subseq", "__commonJSMin", "exports", "module", "RE_SUBSEQ", "require_prop2slice_0d", "__commonJSMin", "exports", "module", "trim", "replace", "MultiSlice", "str2multislice", "seq2multislice", "str2slice", "format", "RE_INTEGER", "RE_SUBSEQ", "prop2slice", "target", "property", "shape", "prop", "ch", "s", "require_prop2slice_1d", "__commonJSMin", "exports", "module", "trim", "replace", "MultiSlice", "str2multislice", "seq2multislice", "str2slice", "format", "RE_INTEGER", "prop2slice", "target", "property", "strict", "shape", "prop", "ch", "s", "require_prop2slice_nd", "__commonJSMin", "exports", "module", "trim", "str2multislice", "seq2multislice", "sargs2multislice", "format", "RE_SUBSEQ", "prop2slice", "target", "property", "strict", "shape", "prop", "ch", "s", "require_has_property", "__commonJSMin", "exports", "module", "propertiesIn", "contains", "ndarray", "defaults", "hasProperty", "require_get_value", "__commonJSMin", "exports", "module", "isFunction", "getValue", "target", "property", "receiver", "value", "wrapper", "args", "i", "require_error_message", "__commonJSMin", "exports", "module", "replace", "errMessage", "msg", "require_error_constructor", "__commonJSMin", "exports", "module", "isRangeError", "isTypeError", "isSyntaxError", "errConstructor", "err", "require_get_slice", "__commonJSMin", "exports", "module", "slice", "errMessage", "errConstructor", "getSlice", "target", "property", "receiver", "prop2slice", "strict", "E", "s", "err", "require_get", "__commonJSMin", "exports", "module", "hasProperty", "getValue", "getSlice", "factory", "prop2slice", "get", "target", "property", "receiver", "require_set_value", "__commonJSMin", "exports", "module", "setValue", "target", "property", "value", "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", "hasOwnProp", "isPlainObject", "isNumber", "isComplexLike", "isAccessorArray", "accessorSetter", "setter", "buffer", "ndarray", "defaults", "format", "ORDER", "scalar2ndarray", "value", "options", "opts", "buf", "flg", "set", "dt", "v", "require_lib", "__commonJSMin", "exports", "module", "main", "require_set_slice", "__commonJSMin", "exports", "module", "sliceAssign", "isndarrayLike", "isNumber", "isInteger", "isComplexLike", "isComplexDataType", "isFloatingDataType", "isUnsignedIntegerDataType", "isSignedIntegerDataType", "isSafeCast", "INT8_MAX", "INT16_MAX", "INT32_MAX", "minDataType", "complexDataType", "scalar2ndarray", "format", "errMessage", "errConstructor", "options", "dtype", "setSlice", "target", "property", "value", "receiver", "prop2slice", "strict", "vdt", "dt", "E", "s", "err", "require_set", "__commonJSMin", "exports", "module", "hasProperty", "setValue", "setSlice", "factory", "prop2slice", "set", "target", "property", "value", "receiver", "require_main", "__commonJSMin", "exports", "module", "setReadOnly", "parent", "inherit", "Proxy", "prop2slice0d", "prop2slice1d", "prop2slicend", "get", "set", "get0d", "set0d", "get1d", "set1d", "getnd", "setnd", "FancyArray", "dtype", "buffer", "shape", "strides", "offset", "order", "options", "handlers", "nargs", "ndims", "require_lib", "__commonJSMin", "exports", "module", "main", "require_defaults", "__commonJSMin", "exports", "module", "require_validate", "__commonJSMin", "exports", "module", "isObject", "hasOwnProp", "isOrder", "isIndexMode", "format", "validate", "opts", "options", "require_main", "__commonJSMin", "exports", "module", "isNonNegativeIntegerArray", "isInteger", "shape2strides", "getSubscripts", "format", "defaults", "validate", "ind2sub", "shape", "idx", "options", "opts", "err", "require_assign", "__commonJSMin", "exports", "module", "isNonNegativeIntegerArray", "isInteger", "shape2strides", "getSubscripts", "format", "defaults", "validate", "ind2sub", "shape", "idx", "options", "out", "opts", "dest", "err", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "main", "assign", "require_main", "__commonJSMin", "exports", "module", "setReadOnly", "isPlainObject", "isBoolean", "isndarrayLike", "isReadOnly", "hasOwnProp", "iteratorSymbol", "zeros", "getShape", "numel", "slice", "nextCartesianIndex", "args2multislice", "format", "nditerColumnEntries", "x", "options", "shape", "ndims", "opts", "iter", "FLG", "idx", "dim", "S0", "N", "i", "next", "end", "factory", "indices", "s", "j", "value", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "setReadOnly", "isPlainObject", "isBoolean", "isndarrayLike", "isReadOnly", "hasOwnProp", "iteratorSymbol", "zeros", "getShape", "numel", "slice", "nextCartesianIndex", "args2multislice", "format", "nditerColumns", "x", "options", "shape", "ndims", "opts", "iter", "FLG", "idx", "dim", "S0", "N", "i", "next", "end", "factory", "s", "j", "value", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "setReadOnly", "isPlainObject", "isOrder", "isndarrayLike", "hasOwnProp", "iteratorSymbol", "zeros", "getShape", "numel", "nextCartesianIndex", "format", "nditerEntries", "x", "options", "shape", "ndims", "opts", "iter", "FLG", "idx", "dim", "N", "i", "next", "end", "factory", "value", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "setReadOnly", "isPlainObject", "isOrder", "isCollection", "isNonNegativeInteger", "hasOwnProp", "iteratorSymbol", "zeros", "numel", "nextCartesianIndex", "format", "nditerIndices", "shape", "options", "ndims", "opts", "iter", "FLG", "idx", "dim", "sh", "N", "i", "next", "end", "factory", "value", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "setReadOnly", "isPlainObject", "isBoolean", "isndarrayLike", "isReadOnly", "hasOwnProp", "iteratorSymbol", "zeros", "getShape", "numel", "slice", "nextCartesianIndex", "args2multislice", "format", "nditerMatrices", "x", "options", "shape", "ndims", "opts", "iter", "FLG", "idx", "dim", "S2", "N", "i", "next", "end", "factory", "s", "j", "value", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "setReadOnly", "isPlainObject", "isBoolean", "isndarrayLike", "isReadOnly", "hasOwnProp", "iteratorSymbol", "zeros", "getShape", "numel", "slice", "nextCartesianIndex", "args2multislice", "format", "nditerMatrixEntries", "x", "options", "shape", "ndims", "opts", "iter", "FLG", "idx", "dim", "S2", "N", "i", "next", "end", "factory", "indices", "s", "j", "value", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "setReadOnly", "isPlainObject", "isBoolean", "isndarrayLike", "isReadOnly", "hasOwnProp", "iteratorSymbol", "zeros", "getShape", "numel", "slice", "nextCartesianIndex", "args2multislice", "format", "nditerRowEntries", "x", "options", "shape", "ndims", "opts", "iter", "FLG", "idx", "dim", "S1", "N", "i", "next", "end", "factory", "indices", "s", "j", "value", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "setReadOnly", "isPlainObject", "isBoolean", "isndarrayLike", "isReadOnly", "hasOwnProp", "iteratorSymbol", "zeros", "getShape", "numel", "slice", "nextCartesianIndex", "args2multislice", "format", "nditerRows", "x", "options", "shape", "ndims", "opts", "iter", "FLG", "idx", "dim", "S1", "N", "i", "next", "end", "factory", "s", "j", "value", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isndarrayLike", "toArray", "getStrides", "getOffset", "getShape", "getOrder", "getData", "format", "ndarray2array", "x", "require_lib", "__commonJSMin", "exports", "module", "ndarray2array", "require_main", "__commonJSMin", "exports", "module", "setReadOnly", "isFunction", "isIteratorLike", "iteratorSymbol", "ndarray2array", "format", "nditer2arrayEach", "iterator", "iter", "FLG", "next", "end", "factory", "v", "value", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "setReadOnly", "isPlainObject", "isOrder", "isndarrayLike", "hasOwnProp", "iteratorSymbol", "zeros", "getShape", "numel", "nextCartesianIndex", "format", "nditerValues", "x", "options", "shape", "ndims", "opts", "iter", "FLG", "idx", "dim", "N", "i", "next", "end", "factory", "value", "require_lib", "__commonJSMin", "exports", "module", "main", "require_lib", "__commonJSMin", "exports", "module", "setReadOnly", "ns", "require_main", "__commonJSMin", "exports", "module", "isndarrayLike", "isCollection", "isNonNegativeInteger", "broadcast", "format", "maybeBroadcastArray", "x", "shape", "sh", "N", "d", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_next_dtypes", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "objectKeys", "hasOwnProp", "resolveStr", "NEXT_DTYPES", "generateTable", "dtypes", "ntypes", "out", "nextDataType", "dtype", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isNonNegativeInteger", "isCollection", "format", "numel", "x", "ndims", "sh", "n", "d", "i", "require_lib", "__commonJSMin", "exports", "module", "main", "require_promotion_rules", "__commonJSMin", "exports", "module", "require_main", "__commonJSMin", "exports", "module", "objectKeys", "hasOwnProp", "resolve", "PROMOTION_RULES", "generateFullTable", "dtypes", "ntypes", "out", "tmp", "dt1", "dt2", "j", "i", "promotionRules", "dtype1", "dtype2", "o", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isndarrayLike", "isMultiSlice", "isArrayLikeObject", "isPlainObject", "isBoolean", "hasOwnProp", "MultiSlice", "args2multislice", "base", "getShape", "format", "slice", "x", "s", "options", "nargs", "opts", "args", "sh", "S", "i", "err", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isndarrayLike", "isMultiSlice", "isArrayLikeObject", "isPlainObject", "isBoolean", "isReadOnly", "hasOwnProp", "MultiSlice", "args2multislice", "base", "getShape", "format", "sliceAssign", "x", "y", "s", "options", "nargs", "opts", "args", "sh", "S", "i", "err", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isPlainObject", "isBoolean", "isInteger", "isndarrayLike", "isUndefined", "isSlice", "isNull", "hasOwnProp", "Slice", "base", "format", "sliceDimension", "x", "dim", "s", "options", "slice", "opts", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isPlainObject", "isBoolean", "isInteger", "isndarrayLike", "hasOwnProp", "base", "format", "sliceDimensionFrom", "x", "dim", "start", "options", "opts", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isPlainObject", "isBoolean", "isInteger", "isndarrayLike", "hasOwnProp", "base", "format", "sliceDimensionTo", "x", "dim", "stop", "options", "opts", "require_lib", "__commonJSMin", "exports", "module", "main", "require_defaults", "__commonJSMin", "exports", "module", "require_validate", "__commonJSMin", "exports", "module", "isObject", "hasOwnProp", "isArray", "isOrder", "isIndexMode", "format", "validate", "opts", "options", "i", "require_main", "__commonJSMin", "exports", "module", "isNonNegativeIntegerArray", "isInteger", "shape2strides", "getIndex", "format", "defaults", "validate", "sub2ind", "options", "shape", "ndims", "args", "opts", "err", "len", "i", "j", "require_lib", "__commonJSMin", "exports", "module", "sub2ind", "require_main", "__commonJSMin", "exports", "module", "isPlainObject", "hasOwnProp", "isArrayLike", "shape2strides", "strides2offset", "buffer", "numel", "ndarray", "defaults", "format", "DTYPE", "ORDER", "zeros", "shape", "options", "dtype", "order", "ndims", "opts", "buf", "len", "st", "sh", "require_lib", "__commonJSMin", "exports", "module", "main", "require_main", "__commonJSMin", "exports", "module", "isndarrayLike", "isPlainObject", "isNonNegativeIntegerArray", "hasOwnProp", "shape2strides", "strides2offset", "buffer", "numel", "getDType", "getShape", "getOrder", "ndarray", "format", "zerosLike", "x", "options", "dtype", "order", "ndims", "opts", "buf", "len", "st", "sh", "require_lib", "__commonJSMin", "exports", "module", "main", "setReadOnly", "ns"] } diff --git a/ind2sub/docs/types/index.d.ts b/ind2sub/docs/types/index.d.ts index 7c52e159..639b55ce 100644 --- a/ind2sub/docs/types/index.d.ts +++ b/ind2sub/docs/types/index.d.ts @@ -39,6 +39,9 @@ interface Options { order?: Order; } +/** +* Interface describing the main export. +*/ interface Ind2Sub { /** * Converts a linear index to an array of subscripts. @@ -175,6 +178,7 @@ interface Ind2Sub { */ declare var ind2sub: Ind2Sub; + // EXPORTS // export = ind2sub;