@stdlib/ndarray-base-nullary-strided1d 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../lib/initialize_array_views.js", "../lib/strategy.js", "../lib/defaults.js", "../lib/validate.js", "../lib/increment_offsets.js", "../lib/set_view_offsets.js", "../lib/offsets.js", "../lib/2d_blocked.js", "../lib/3d_blocked.js", "../lib/4d_blocked.js", "../lib/5d_blocked.js", "../lib/6d_blocked.js", "../lib/7d_blocked.js", "../lib/8d_blocked.js", "../lib/9d_blocked.js", "../lib/10d_blocked.js", "../lib/0d.js", "../lib/1d.js", "../lib/2d.js", "../lib/3d.js", "../lib/4d.js", "../lib/5d.js", "../lib/6d.js", "../lib/7d.js", "../lib/8d.js", "../lib/9d.js", "../lib/10d.js", "../lib/nd.js", "../lib/main_factory.js", "../lib/main.js", "../lib/factory.js", "../lib/index.js"],
4
+ "sourcesContent": ["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2025 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Initialize ndarray-like objects for representing zero-dimensional sub-array views of ancillary ndarray arguments.\n*\n* ## Notes\n*\n* - This function ignores the first ndarray-like object, which is assumed to be the input ndarray.\n* - This function mutates the provided output array.\n*\n* @private\n* @param {ArrayLikeObject<Object>} arrays - list of ndarray-like objects\n* @param {Array<Object>} out - output array\n* @returns {Array<Object>} output array\n*/\nfunction initializeViews( arrays, out ) {\n\tvar v;\n\tvar i;\n\n\tfor ( i = 1; i < arrays.length; i++ ) {\n\t\tv = arrays[ i ];\n\t\tout.push({\n\t\t\t'dtype': v.dtype,\n\t\t\t'data': v.data,\n\t\t\t'shape': [],\n\t\t\t'strides': [ 0 ],\n\t\t\t'offset': v.offset,\n\t\t\t'order': v.order\n\t\t});\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = initializeViews;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2025 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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( '@stdlib/ndarray-base-iteration-order' );\nvar minmaxViewBufferIndex = require( '@stdlib/ndarray-base-minmax-view-buffer-index' ).assign;\nvar ndarraylike2object = require( '@stdlib/ndarray-base-ndarraylike2object' );\nvar assign = require( '@stdlib/ndarray-base-assign' );\nvar ndarraylike2ndarray = require( '@stdlib/ndarray-base-ndarraylike2ndarray' );\nvar emptyLike = require( '@stdlib/ndarray-base-empty-like' );\n\n\n// FUNCTIONS //\n\n/**\n* Returns an input ndarray.\n*\n* @private\n* @param {ndarrayLike} x - input ndarray\n* @returns {ndarrayLike} input ndarray\n*/\nfunction identity( x ) {\n\treturn x;\n}\n\n/**\n* Broadcasts a zero-dimensional ndarray to a one-dimensional ndarray view containing a single element.\n*\n* @private\n* @param {ndarrayLike} x - input ndarray\n* @returns {ndarrayLike} broadcasted ndarray view\n*/\nfunction broadcast( x ) {\n\t// NOTE: the following properties must be set in the exact same order as in `x` in order to ensure that the returned object has the same hidden shape as the input ndarray-like object...\n\treturn {\n\t\t'dtype': x.dtype,\n\t\t'data': x.data,\n\t\t'shape': [ 1 ],\n\t\t'strides': [ 0 ],\n\t\t'offset': x.offset,\n\t\t'order': x.order\n\t};\n}\n\n/**\n* Returns a function which returns an ndarray view in which the singleton dimensions are removed from an input ndarray having only a single non-singleton dimension.\n*\n* @private\n* @param {ndarrayLike} arr - original ndarray\n* @param {NonNegativeInteger} index - index of the non-singleton dimension\n* @returns {Function} function for returning an ndarray view\n*/\nfunction squeeze( arr, index ) {\n\tvar sh = [ arr.shape[ index ] ];\n\tvar sx = [ arr.strides[ index ] ];\n\treturn reshape;\n\n\t/**\n\t* Returns an ndarray view in which the singleton dimensions are removed from an input ndarray having only a single non-singleton dimension.\n\t*\n\t* @private\n\t* @param {ndarrayLike} x - input ndarray\n\t* @returns {ndarrayLike} a squeezed ndarray view\n\t*/\n\tfunction reshape( x ) {\n\t\t// NOTE: the following properties must be set in the exact same order as in `arr` in order to ensure that the returned object has the same hidden shape as the input ndarray-like object...\n\t\treturn {\n\t\t\t'dtype': x.dtype,\n\t\t\t'data': x.data,\n\t\t\t'shape': sh,\n\t\t\t'strides': sx,\n\t\t\t'offset': x.offset,\n\t\t\t'order': x.order\n\t\t};\n\t}\n}\n\n/**\n* Returns a function which returns a one-dimensional ndarray view of a contiguous input ndarray having more than one dimension.\n*\n* @private\n* @param {NonNegativeInteger} len - number of elements in an ndarray\n* @param {integer} iox - iteration order\n* @returns {Function} function for returning a one-dimensional ndarray view\n*/\nfunction contiguous( len, iox ) {\n\tvar xmmv;\n\tvar ind;\n\tvar sh;\n\tvar sx;\n\n\t// Resolve the index of the min/max view buffer element which is the first indexed element...\n\tif ( iox === 1 ) {\n\t\tind = 0;\n\t} else {\n\t\tind = 1;\n\t}\n\t// Initialize an array for storing the min/max view buffer elements:\n\txmmv = [ 0, 0 ]; // [ min, max ]\n\n\t// Initialize the output one-dimensional view's shape and strides:\n\tsh = [ len ];\n\tsx = [ iox ];\n\n\treturn reshape;\n\n\t/**\n\t* Returns a one-dimensional ndarray view of a contiguous input ndarray having more than one dimension.\n\t*\n\t* @private\n\t* @param {ndarrayLike} x - input ndarray\n\t* @returns {ndarrayLike} a one-dimensional ndarray view\n\t*/\n\tfunction reshape( x ) {\n\t\t// Resolve the minimum and maximum linear indices in the underlying data buffer which are accessible to the input ndarray view:\n\t\tminmaxViewBufferIndex( x.shape, x.strides, x.offset, xmmv );\n\n\t\t// NOTE: the following properties must be set in the exact same order as in `x` in order to ensure that the returned object has the same hidden shape as the input ndarray-like object...\n\t\treturn {\n\t\t\t'dtype': x.dtype,\n\t\t\t'data': x.data,\n\t\t\t'shape': sh,\n\t\t\t'strides': sx,\n\t\t\t'offset': xmmv[ ind ], // the index of the first indexed element\n\t\t\t'order': x.order\n\t\t};\n\t}\n}\n\n/**\n* Returns a function which copies an input ndarray to a contiguous ndarray workspace.\n*\n* @private\n* @param {NonNegativeInteger} len - number of elements in an ndarray\n* @param {ndarrayLike} workspace - ndarray workspace\n* @returns {Function} function which copies an input ndarray to a contiguous ndarray workspace\n*/\nfunction copyToWorkspace( len, workspace ) {\n\t// NOTE: the following properties must be set in the exact same order as in the input ndarray-like object in order to ensure that the returned object has the same hidden shape...\n\tvar view = {\n\t\t'dtype': workspace.dtype,\n\t\t'data': workspace.data,\n\t\t'shape': [ len ],\n\t\t'strides': [ 1 ],\n\t\t'offset': workspace.offset,\n\t\t'order': workspace.order\n\t};\n\treturn reshape;\n\n\t/**\n\t* Copies an input ndarray to a contiguous ndarray workspace and returns a one-dimensional workspace view.\n\t*\n\t* @private\n\t* @param {ndarrayLike} x - input ndarray\n\t* @returns {ndarrayLike} one-dimensional workspace view\n\t*/\n\tfunction reshape( x ) {\n\t\tassign( [ x, workspace ] );\n\t\treturn view;\n\t}\n}\n\n/**\n* Returns a function which copies from a contiguous ndarray workspace to an input ndarray.\n*\n* @private\n* @param {ndarrayLike} workspace - ndarray workspace\n* @returns {Function} function which copies from a contiguous ndarray workspace to an input ndarray\n*/\nfunction copyFromWorkspace( workspace ) {\n\treturn copy;\n\n\t/**\n\t* Copies from a contiguous ndarray workspace to an input ndarray.\n\t*\n\t* @private\n\t* @param {ndarrayLike} x - input ndarray\n\t* @returns {ndarrayLike} input ndarray\n\t*/\n\tfunction copy( x ) {\n\t\tassign( [ workspace, x ] );\n\t\treturn x;\n\t}\n}\n\n\n// MAIN //\n\n/**\n* Returns an object for reshaping input ndarrays which have the same data type, shape, and strides as a provided ndarray.\n*\n* @private\n* @param {ndarrayLike} x - input ndarray\n* @param {string} x.dtype - input ndarray data type\n* @param {Collection} x.data - input ndarray data buffer\n* @param {NonNegativeIntegerArray} x.shape - input ndarray shape\n* @param {IntegerArray} x.strides - input ndarray strides\n* @param {NonNegativeInteger} x.offset - input ndarray index offset\n* @param {string} x.order - input ndarray memory layout\n* @returns {Object} object containing methods implementing a reshape strategy\n*/\nfunction strategy( x ) {\n\tvar workspace;\n\tvar ndims;\n\tvar xmmv;\n\tvar len;\n\tvar iox;\n\tvar sh;\n\tvar ns;\n\tvar i;\n\n\t// Resolve the number of array dimensions:\n\tsh = x.shape;\n\tndims = sh.length;\n\n\t// Check whether the ndarray is zero-dimensional...\n\tif ( ndims === 0 ) {\n\t\treturn {\n\t\t\t'input': broadcast,\n\t\t\t'output': identity\n\t\t};\n\t}\n\t// Check whether the ndarray is already one-dimensional...\n\tif ( ndims === 1 ) {\n\t\treturn {\n\t\t\t'input': identity,\n\t\t\t'output': identity\n\t\t};\n\t}\n\t// Determine 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\t// Check whether the current dimension is a singleton dimension...\n\t\tif ( sh[ i ] === 1 ) {\n\t\t\tns += 1;\n\t\t}\n\t\tlen *= sh[ i ];\n\t}\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 simply create an ndarray view without the singleton dimensions...\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 ( sh[ i ] !== 1 ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\t'input': squeeze( x, i ),\n\t\t\t'output': identity\n\t\t};\n\t}\n\tiox = iterationOrder( x.strides ); // +/-1\n\n\t// Determine whether we can avoid copying data...\n\tif ( iox !== 0 ) {\n\t\t// Determine the minimum and maximum linear indices which are accessible by the ndarray view:\n\t\txmmv = minmaxViewBufferIndex( sh, x.strides, x.offset, [ 0, 0 ] );\n\n\t\t// Determine whether we can ignore shape (and strides) and create a new one-dimensional ndarray view...\n\t\tif ( len === ( xmmv[1]-xmmv[0]+1 ) ) {\n\t\t\treturn {\n\t\t\t\t'input': contiguous( len, iox ),\n\t\t\t\t'output': identity\n\t\t\t};\n\t\t}\n\t\t// The ndarray is non-contiguous, so we cannot directly interpret as a one-dimensional ndarray...\n\n\t\t// Fall-through to copying to a workspace ndarray...\n\t}\n\t// At this point, we're dealing with a non-contiguous multi-dimensional ndarray, so we need to copy to a contiguous workspace:\n\tworkspace = ndarraylike2object( emptyLike( ndarraylike2ndarray( x ) ) );\n\treturn {\n\t\t'input': copyToWorkspace( len, workspace ),\n\t\t'output': copyFromWorkspace( workspace )\n\t};\n}\n\n\n// EXPORTS //\n\nmodule.exports = strategy;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2025 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Returns default options.\n*\n* @private\n* @returns {Object} default options\n*\n* @example\n* var o = defaults();\n* // returns {...}\n*/\nfunction defaults() {\n\treturn {\n\t\t// Require that the order of element traversal match the memory layout of the target ndarray:\n\t\t'strictTraversalOrder': false\n\t};\n}\n\n\n// EXPORTS //\n\nmodule.exports = defaults;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2025 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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 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 {boolean} [options.strictTraversalOrder] - boolean indicating whether the order of element traversal must match the memory layout order of an input ndarray\n* @returns {(Error|null)} null or an error object\n*\n* @example\n* var opts = {};\n* var options = {\n* 'strictTraversalOrder': true\n* };\n* var err = validate( opts, options );\n* if ( err ) {\n* throw err;\n* }\n*/\nfunction validate( opts, options ) {\n\tif ( !isObject( options ) ) {\n\t\treturn new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tif ( hasOwnProp( options, 'strictTraversalOrder' ) ) {\n\t\topts.strictTraversalOrder = options.strictTraversalOrder;\n\t\tif ( !isBoolean( opts.strictTraversalOrder ) ) {\n\t\t\treturn new TypeError( format( 'invalid option. `%s` option must be a boolean. Option: `%s`.', 'strictTraversalOrder', opts.strictTraversalOrder ) );\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) 2025 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MAIN //\n\n/**\n* Increments index offsets according to a list of increments.\n*\n* ## Notes\n*\n* - This function mutates the list of index offsets.\n*\n* @private\n* @param {NonNegativeIntegerArray} offsets - list of index offsets\n* @param {NonNegativeIntegerArray} inc - list of increments\n* @returns {NonNegativeIntegerArray} updated offsets\n*/\nfunction incrementOffsets( offsets, inc ) {\n\tvar i;\n\tfor ( i = 0; i < offsets.length; i++ ) {\n\t\toffsets[ i ] += inc[ i ];\n\t}\n\treturn offsets;\n}\n\n\n// EXPORTS //\n\nmodule.exports = incrementOffsets;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2025 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the 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 view offsets according to a list of index offsets.\n*\n* ## Notes\n*\n* - This function mutates the provides view objects.\n*\n* @private\n* @param {Array<Object>} views - list of ndarray-like objects representing ndarray views\n* @param {NonNegativeIntegerArray} offsets - list of index offsets\n* @returns {Array<Object>} updated views\n*/\nfunction setViewOffsets( views, offsets ) {\n\tvar i;\n\tfor ( i = 0; i < offsets.length; i++ ) {\n\t\tviews[ i ].offset = offsets[ i ];\n\t}\n\treturn views;\n}\n\n\n// EXPORTS //\n\nmodule.exports = setViewOffsets;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2025 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the 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 index offsets from a list of ndarray-like objects.\n*\n* @private\n* @param {ArrayLikeObject<Object>} arrays - list of ndarray-like objects\n* @returns {NonNegativeIntegerArray} list of offsets\n*/\nfunction offsets( arrays ) {\n\tvar out = [];\n\tvar i;\n\tfor ( i = 0; i < arrays.length; i++ ) {\n\t\tout.push( arrays[ i ].offset );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = offsets;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2025 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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( '@stdlib/ndarray-base-nullary-loop-interchange-order' );\nvar blockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' );\nvar takeIndexed = require( '@stdlib/array-base-take-indexed' );\nvar copyIndexed = require( '@stdlib/array-base-copy-indexed' );\nvar zeros = require( '@stdlib/array-base-zeros' );\nvar incrementOffsets = require( './increment_offsets.js' );\nvar setViewOffsets = require( './set_view_offsets.js' );\nvar offsets = require( './offsets.js' );\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an ndarray via loop-blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array function\n* @param {Array<Object>} arrays - ndarrays\n* @param {Array<Object>} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the ndarray\n* @param {Object} strategyX - strategy for marshaling data to and from an ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* var ndarray2array = require( '@stdlib/ndarray-base-to-array' );\n* var getStride = require( '@stdlib/ndarray-base-stride' );\n* var getOffset = require( '@stdlib/ndarray-base-offset' );\n* var getData = require( '@stdlib/ndarray-base-data-buffer' );\n* var numelDimension = require( '@stdlib/ndarray-base-numel-dimension' );\n* var ndarraylike2scalar = require( '@stdlib/ndarray-base-ndarraylike2scalar' );\n* var gsorthp = require( '@stdlib/blas-ext-base-gsorthp' ).ndarray;\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var o = arrays[ 1 ];\n* return gsorthp( numelDimension( x, 0 ), ndarraylike2scalar( o ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = [ 12.0, 11.0, 10.0, 9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0 ];\n*\n* // Define an array shape:\n* var xsh = [ 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an ndarray-like object for the sort order:\n* var sortOrder = {\n* 'dtype': 'generic',\n* 'data': [ 1.0 ],\n* 'shape': [ 1, 3 ],\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Initialize ndarray-like objects representing sub-array views:\n* var views = [\n* {\n* 'dtype': x.dtype,\n* 'data': x.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': x.offset,\n* 'order': x.order\n* },\n* {\n* 'dtype': sortOrder.dtype,\n* 'data': sortOrder.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sortOrder.offset,\n* 'order': sortOrder.order\n* }\n* ];\n*\n* // Define an input strategy:\n* function inputStrategy( x ) {\n* return {\n* 'dtype': x.dtype,\n* 'data': x.data,\n* 'shape': [ 4 ],\n* 'strides': [ 1 ],\n* 'offset': x.offset,\n* 'order': x.order\n* };\n* }\n*\n* // Define an output strategy:\n* function outputStrategy( x ) {\n* return x;\n* }\n*\n* var strategy = {\n* 'input': inputStrategy,\n* 'output': outputStrategy\n* }\n*\n* // Apply strided function:\n* blockednullary2d( wrapper, [ x, sortOrder ], views, [ 1, 3 ], [ 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( x.data, x.shape, x.strides, x.offset, x.order );\n* // returns [ [ [ [ 9.0, 10.0 ], [ 11.0, 12.0 ] ], [ [ 5.0, 6.0 ], [ 7.0, 8.0 ] ], [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] ]\n*/\nfunction blockednullary2d( fcn, arrays, views, shape, stridesX, strategyX, opts ) { // eslint-disable-line max-len\n\tvar bsize;\n\tvar dv0;\n\tvar dv1;\n\tvar ov1;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar sv;\n\tvar ov;\n\tvar iv;\n\tvar i0;\n\tvar i1;\n\tvar j0;\n\tvar j1;\n\tvar N;\n\tvar x;\n\tvar v;\n\tvar o;\n\tvar k;\n\n\t// Note on variable naming convention: S#, dv#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\tN = arrays.length;\n\tx = arrays[ 0 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( shape, stridesX );\n\tsh = o.sh;\n\tsv = [ o.sx ];\n\tfor ( k = 1; k < N; k++ ) {\n\t\tsv.push( takeIndexed( arrays[k].strides, o.idx ) );\n\t}\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Resolve a list of pointers to the first indexed elements in the respective ndarrays:\n\tov = offsets( arrays );\n\n\t// Cache offset increments for the innermost loop...\n\tdv0 = [];\n\tfor ( k = 0; k < N; k++ ) {\n\t\tdv0.push( sv[k][0] );\n\t}\n\t// Initialize loop variables...\n\tov1 = zeros( N );\n\tdv1 = zeros( N );\n\tiv = zeros( N );\n\n\t// Shallow copy the list of views to an internal array so that we can update with reshaped views without impacting the original list of views:\n\tv = copyIndexed( views );\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\tfor ( k = 0; k < N; k++ ) {\n\t\t\tov1[ k ] = ov[k] + ( j1*sv[k][1] );\n\t\t}\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 and loop offset increments for the first ndarray elements in the current block...\n\t\t\tfor ( k = 0; k < N; k++ ) {\n\t\t\t\tiv[ k ] = ov1[k] + ( j0*sv[k][0] );\n\t\t\t\tdv1[ k ] = sv[k][1] - ( s0*sv[k][0] );\n\t\t\t}\n\t\t\t// Iterate over the loop 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\tsetViewOffsets( views, iv );\n\t\t\t\t\tv[ 0 ] = strategyX.input( views[ 0 ] );\n\t\t\t\t\tfcn( v, opts );\n\t\t\t\t\tstrategyX.output( views[ 0 ] );\n\t\t\t\t\tincrementOffsets( iv, dv0 );\n\t\t\t\t}\n\t\t\t\tincrementOffsets( iv, dv1 );\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) 2025 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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( '@stdlib/ndarray-base-nullary-loop-interchange-order' );\nvar blockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' );\nvar takeIndexed = require( '@stdlib/array-base-take-indexed' );\nvar copyIndexed = require( '@stdlib/array-base-copy-indexed' );\nvar zeros = require( '@stdlib/array-base-zeros' );\nvar incrementOffsets = require( './increment_offsets.js' );\nvar setViewOffsets = require( './set_view_offsets.js' );\nvar offsets = require( './offsets.js' );\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array<Object>} arrays - ndarrays\n* @param {Array<Object>} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the ndarray\n* @param {Object} strategyX - strategy for marshaling data to and from an ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* var ndarray2array = require( '@stdlib/ndarray-base-to-array' );\n* var getStride = require( '@stdlib/ndarray-base-stride' );\n* var getOffset = require( '@stdlib/ndarray-base-offset' );\n* var getData = require( '@stdlib/ndarray-base-data-buffer' );\n* var numelDimension = require( '@stdlib/ndarray-base-numel-dimension' );\n* var ndarraylike2scalar = require( '@stdlib/ndarray-base-ndarraylike2scalar' );\n* var gsorthp = require( '@stdlib/blas-ext-base-gsorthp' ).ndarray;\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var o = arrays[ 1 ];\n* return gsorthp( numelDimension( x, 0 ), ndarraylike2scalar( o ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = [ 12.0, 11.0, 10.0, 9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0 ];\n*\n* // Define an array shape:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an ndarray-like object for the sort order:\n* var sortOrder = {\n* 'dtype': 'generic',\n* 'data': [ 1.0 ],\n* 'shape': [ 1, 1, 3 ],\n* 'strides': [ 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Initialize ndarray-like objects representing sub-array views:\n* var views = [\n* {\n* 'dtype': x.dtype,\n* 'data': x.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': x.offset,\n* 'order': x.order\n* },\n* {\n* 'dtype': sortOrder.dtype,\n* 'data': sortOrder.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sortOrder.offset,\n* 'order': sortOrder.order\n* }\n* ];\n*\n* // Define an input strategy:\n* function inputStrategy( x ) {\n* return {\n* 'dtype': x.dtype,\n* 'data': x.data,\n* 'shape': [ 4 ],\n* 'strides': [ 1 ],\n* 'offset': x.offset,\n* 'order': x.order\n* };\n* }\n*\n* // Define an output strategy:\n* function outputStrategy( x ) {\n* return x;\n* }\n*\n* var strategy = {\n* 'input': inputStrategy,\n* 'output': outputStrategy\n* }\n*\n* // Apply strided function:\n* blockednullary3d( wrapper, [ x, sortOrder ], views, [ 1, 1, 3 ], [ 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( x.data, x.shape, x.strides, x.offset, x.order );\n* // returns [ [ [ [ [ 9.0, 10.0 ], [ 11.0, 12.0 ] ], [ [ 5.0, 6.0 ], [ 7.0, 8.0 ] ], [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] ] ]\n*/\nfunction blockednullary3d( fcn, arrays, views, shape, stridesX, strategyX, opts ) { // eslint-disable-line max-len\n\tvar bsize;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar ov1;\n\tvar ov2;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar sv;\n\tvar ov;\n\tvar iv;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar j0;\n\tvar j1;\n\tvar j2;\n\tvar N;\n\tvar x;\n\tvar v;\n\tvar o;\n\tvar k;\n\n\t// Note on variable naming convention: S#, dv#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\tN = arrays.length;\n\tx = arrays[ 0 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( shape, stridesX );\n\tsh = o.sh;\n\tsv = [ o.sx ];\n\tfor ( k = 1; k < N; k++ ) {\n\t\tsv.push( takeIndexed( arrays[k].strides, o.idx ) );\n\t}\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Resolve a list of pointers to the first indexed elements in the respective ndarrays:\n\tov = offsets( arrays );\n\n\t// Cache offset increments for the innermost loop...\n\tdv0 = [];\n\tfor ( k = 0; k < N; k++ ) {\n\t\tdv0.push( sv[k][0] );\n\t}\n\t// Initialize loop variables...\n\tov1 = zeros( N );\n\tov2 = zeros( N );\n\tdv1 = zeros( N );\n\tdv2 = zeros( N );\n\tiv = zeros( N );\n\n\t// Shallow copy the list of views to an internal array so that we can update with reshaped views without impacting the original list of views:\n\tv = copyIndexed( views );\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\tfor ( k = 0; k < N; k++ ) {\n\t\t\tov2[ k ] = ov[k] + ( j2*sv[k][2] );\n\t\t}\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\tfor ( k = 0; k < N; k++ ) {\n\t\t\t\tov1[ k ] = ov2[k] + ( j1*sv[k][1] );\n\t\t\t\tdv2[ k ] = sv[k][2] - ( s1*sv[k][1] );\n\t\t\t}\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 and loop offset increments for the first ndarray elements in the current block...\n\t\t\t\tfor ( k = 0; k < N; k++ ) {\n\t\t\t\t\tiv[ k ] = ov1[k] + ( j0*sv[k][0] );\n\t\t\t\t\tdv1[ k ] = sv[k][1] - ( s0*sv[k][0] );\n\t\t\t\t}\n\t\t\t\t// Iterate over the loop 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\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tv[ 0 ] = strategyX.input( views[ 0 ] );\n\t\t\t\t\t\t\tfcn( v, opts );\n\t\t\t\t\t\t\tstrategyX.output( views[ 0 ] );\n\t\t\t\t\t\t\tincrementOffsets( iv, dv0 );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tincrementOffsets( iv, dv1 );\n\t\t\t\t\t}\n\t\t\t\t\tincrementOffsets( iv, dv2 );\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) 2025 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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( '@stdlib/ndarray-base-nullary-loop-interchange-order' );\nvar blockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' );\nvar takeIndexed = require( '@stdlib/array-base-take-indexed' );\nvar copyIndexed = require( '@stdlib/array-base-copy-indexed' );\nvar zeros = require( '@stdlib/array-base-zeros' );\nvar incrementOffsets = require( './increment_offsets.js' );\nvar setViewOffsets = require( './set_view_offsets.js' );\nvar offsets = require( './offsets.js' );\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array<Object>} arrays - ndarrays\n* @param {Array<Object>} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the ndarray\n* @param {Object} strategyX - strategy for marshaling data to and from an ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* var ndarray2array = require( '@stdlib/ndarray-base-to-array' );\n* var getStride = require( '@stdlib/ndarray-base-stride' );\n* var getOffset = require( '@stdlib/ndarray-base-offset' );\n* var getData = require( '@stdlib/ndarray-base-data-buffer' );\n* var numelDimension = require( '@stdlib/ndarray-base-numel-dimension' );\n* var ndarraylike2scalar = require( '@stdlib/ndarray-base-ndarraylike2scalar' );\n* var gsorthp = require( '@stdlib/blas-ext-base-gsorthp' ).ndarray;\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var o = arrays[ 1 ];\n* return gsorthp( numelDimension( x, 0 ), ndarraylike2scalar( o ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = [ 12.0, 11.0, 10.0, 9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0 ];\n*\n* // Define an array shape:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an ndarray-like object for the sort order:\n* var sortOrder = {\n* 'dtype': 'generic',\n* 'data': [ 1.0 ],\n* 'shape': [ 1, 1, 1, 3 ],\n* 'strides': [ 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Initialize ndarray-like objects representing sub-array views:\n* var views = [\n* {\n* 'dtype': x.dtype,\n* 'data': x.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': x.offset,\n* 'order': x.order\n* },\n* {\n* 'dtype': sortOrder.dtype,\n* 'data': sortOrder.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sortOrder.offset,\n* 'order': sortOrder.order\n* }\n* ];\n*\n* // Define an input strategy:\n* function inputStrategy( x ) {\n* return {\n* 'dtype': x.dtype,\n* 'data': x.data,\n* 'shape': [ 4 ],\n* 'strides': [ 1 ],\n* 'offset': x.offset,\n* 'order': x.order\n* };\n* }\n*\n* // Define an output strategy:\n* function outputStrategy( x ) {\n* return x;\n* }\n*\n* var strategy = {\n* 'input': inputStrategy,\n* 'output': outputStrategy\n* }\n*\n* // Apply strided function:\n* blockednullary4d( wrapper, [ x, sortOrder ], views, [ 1, 1, 1, 3 ], [ 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( x.data, x.shape, x.strides, x.offset, x.order );\n* // returns [ [ [ [ [ [ 9.0, 10.0 ], [ 11.0, 12.0 ] ], [ [ 5.0, 6.0 ], [ 7.0, 8.0 ] ], [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] ] ] ]\n*/\nfunction blockednullary4d( fcn, arrays, views, shape, stridesX, strategyX, opts ) { // eslint-disable-line max-len\n\tvar bsize;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar ov1;\n\tvar ov2;\n\tvar ov3;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar sv;\n\tvar ov;\n\tvar iv;\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 N;\n\tvar x;\n\tvar v;\n\tvar o;\n\tvar k;\n\n\t// Note on variable naming convention: S#, dv#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\tN = arrays.length;\n\tx = arrays[ 0 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( shape, stridesX );\n\tsh = o.sh;\n\tsv = [ o.sx ];\n\tfor ( k = 1; k < N; k++ ) {\n\t\tsv.push( takeIndexed( arrays[k].strides, o.idx ) );\n\t}\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Resolve a list of pointers to the first indexed elements in the respective ndarrays:\n\tov = offsets( arrays );\n\n\t// Cache offset increments for the innermost loop...\n\tdv0 = [];\n\tfor ( k = 0; k < N; k++ ) {\n\t\tdv0.push( sv[k][0] );\n\t}\n\t// Initialize loop variables...\n\tov1 = zeros( N );\n\tov2 = zeros( N );\n\tov3 = zeros( N );\n\tdv1 = zeros( N );\n\tdv2 = zeros( N );\n\tdv3 = zeros( N );\n\tiv = zeros( N );\n\n\t// Shallow copy the list of views to an internal array so that we can update with reshaped views without impacting the original list of views:\n\tv = copyIndexed( views );\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\tfor ( k = 0; k < N; k++ ) {\n\t\t\tov3[ k ] = ov[k] + ( j3*sv[k][3] );\n\t\t}\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\tfor ( k = 0; k < N; k++ ) {\n\t\t\t\tov2[ k ] = ov3[k] + ( j2*sv[k][2] );\n\t\t\t\tdv3[ k ] = sv[k][3] - ( s2*sv[k][2] );\n\t\t\t}\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\tfor ( k = 0; k < N; k++ ) {\n\t\t\t\t\tov1[ k ] = ov2[k] + ( j1*sv[k][1] );\n\t\t\t\t\tdv2[ k ] = sv[k][2] - ( s1*sv[k][1] );\n\t\t\t\t}\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 and loop offset increments for the first ndarray elements in the current block...\n\t\t\t\t\tfor ( k = 0; k < N; k++ ) {\n\t\t\t\t\t\tiv[ k ] = ov1[k] + ( j0*sv[k][0] );\n\t\t\t\t\t\tdv1[ k ] = sv[k][1] - ( s0*sv[k][0] );\n\t\t\t\t\t}\n\t\t\t\t\t// Iterate over the loop 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\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tv[ 0 ] = strategyX.input( views[ 0 ] );\n\t\t\t\t\t\t\t\t\tfcn( v, opts );\n\t\t\t\t\t\t\t\t\tstrategyX.output( views[ 0 ] );\n\t\t\t\t\t\t\t\t\tincrementOffsets( iv, dv0 );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tincrementOffsets( iv, dv1 );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tincrementOffsets( iv, dv2 );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tincrementOffsets( iv, dv3 );\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) 2025 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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( '@stdlib/ndarray-base-nullary-loop-interchange-order' );\nvar blockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' );\nvar takeIndexed = require( '@stdlib/array-base-take-indexed' );\nvar copyIndexed = require( '@stdlib/array-base-copy-indexed' );\nvar zeros = require( '@stdlib/array-base-zeros' );\nvar incrementOffsets = require( './increment_offsets.js' );\nvar setViewOffsets = require( './set_view_offsets.js' );\nvar offsets = require( './offsets.js' );\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array<Object>} arrays - ndarrays\n* @param {Array<Object>} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the ndarray\n* @param {Object} strategyX - strategy for marshaling data to and from an ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* var ndarray2array = require( '@stdlib/ndarray-base-to-array' );\n* var getStride = require( '@stdlib/ndarray-base-stride' );\n* var getOffset = require( '@stdlib/ndarray-base-offset' );\n* var getData = require( '@stdlib/ndarray-base-data-buffer' );\n* var numelDimension = require( '@stdlib/ndarray-base-numel-dimension' );\n* var ndarraylike2scalar = require( '@stdlib/ndarray-base-ndarraylike2scalar' );\n* var gsorthp = require( '@stdlib/blas-ext-base-gsorthp' ).ndarray;\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var o = arrays[ 1 ];\n* return gsorthp( numelDimension( x, 0 ), ndarraylike2scalar( o ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = [ 12.0, 11.0, 10.0, 9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0 ];\n*\n* // Define an array shape:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an ndarray-like object for the sort order:\n* var sortOrder = {\n* 'dtype': 'generic',\n* 'data': [ 1.0 ],\n* 'shape': [ 1, 1, 1, 1, 3 ],\n* 'strides': [ 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Initialize ndarray-like objects representing sub-array views:\n* var views = [\n* {\n* 'dtype': x.dtype,\n* 'data': x.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': x.offset,\n* 'order': x.order\n* },\n* {\n* 'dtype': sortOrder.dtype,\n* 'data': sortOrder.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sortOrder.offset,\n* 'order': sortOrder.order\n* }\n* ];\n*\n* // Define an input strategy:\n* function inputStrategy( x ) {\n* return {\n* 'dtype': x.dtype,\n* 'data': x.data,\n* 'shape': [ 4 ],\n* 'strides': [ 1 ],\n* 'offset': x.offset,\n* 'order': x.order\n* };\n* }\n*\n* // Define an output strategy:\n* function outputStrategy( x ) {\n* return x;\n* }\n*\n* var strategy = {\n* 'input': inputStrategy,\n* 'output': outputStrategy\n* }\n*\n* // Apply strided function:\n* blockednullary5d( wrapper, [ x, sortOrder ], views, [ 1, 1, 1, 1, 3 ], [ 12, 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( x.data, x.shape, x.strides, x.offset, x.order );\n* // returns [ [ [ [ [ [ [ 9.0, 10.0 ], [ 11.0, 12.0 ] ], [ [ 5.0, 6.0 ], [ 7.0, 8.0 ] ], [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] ] ] ] ]\n*/\nfunction blockednullary5d( fcn, arrays, views, shape, stridesX, strategyX, opts ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar ov1;\n\tvar ov2;\n\tvar ov3;\n\tvar ov4;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar sv;\n\tvar ov;\n\tvar iv;\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 N;\n\tvar x;\n\tvar v;\n\tvar o;\n\tvar k;\n\n\t// Note on variable naming convention: S#, dv#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\tN = arrays.length;\n\tx = arrays[ 0 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( shape, stridesX );\n\tsh = o.sh;\n\tsv = [ o.sx ];\n\tfor ( k = 1; k < N; k++ ) {\n\t\tsv.push( takeIndexed( arrays[k].strides, o.idx ) );\n\t}\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Resolve a list of pointers to the first indexed elements in the respective ndarrays:\n\tov = offsets( arrays );\n\n\t// Cache offset increments for the innermost loop...\n\tdv0 = [];\n\tfor ( k = 0; k < N; k++ ) {\n\t\tdv0.push( sv[k][0] );\n\t}\n\t// Initialize loop variables...\n\tov1 = zeros( N );\n\tov2 = zeros( N );\n\tov3 = zeros( N );\n\tov4 = zeros( N );\n\tdv1 = zeros( N );\n\tdv2 = zeros( N );\n\tdv3 = zeros( N );\n\tdv4 = zeros( N );\n\tiv = zeros( N );\n\n\t// Shallow copy the list of views to an internal array so that we can update with reshaped views without impacting the original list of views:\n\tv = copyIndexed( views );\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\tfor ( k = 0; k < N; k++ ) {\n\t\t\tov4[ k ] = ov[k] + ( j4*sv[k][4] );\n\t\t}\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\tfor ( k = 0; k < N; k++ ) {\n\t\t\t\tdv4[ k ] = sv[k][4] - ( s3*sv[k][3] );\n\t\t\t\tov3[ k ] = ov4[k] + ( j3*sv[k][3] );\n\t\t\t}\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\tfor ( k = 0; k < N; k++ ) {\n\t\t\t\t\tdv3[ k ] = sv[k][3] - ( s2*sv[k][2] );\n\t\t\t\t\tov2[ k ] = ov3[k] + ( j2*sv[k][2] );\n\t\t\t\t}\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\tfor ( k = 0; k < N; k++ ) {\n\t\t\t\t\t\tdv2[ k ] = sv[k][2] - ( s1*sv[k][1] );\n\t\t\t\t\t\tov1[ k ] = ov2[k] + ( j1*sv[k][1] );\n\t\t\t\t\t}\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 and loop offset increments for the first ndarray elements in the current block...\n\t\t\t\t\t\tfor ( k = 0; k < N; k++ ) {\n\t\t\t\t\t\t\tiv[ k ] = ov1[k] + ( j0*sv[k][0] );\n\t\t\t\t\t\t\tdv1[ k ] = sv[k][1] - ( s0*sv[k][0] );\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Iterate over the loop 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\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategyX.input( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\tfcn( v, opts );\n\t\t\t\t\t\t\t\t\t\t\tstrategyX.output( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\tincrementOffsets( iv, dv0 );\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tincrementOffsets( iv, dv1 );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tincrementOffsets( iv, dv2 );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tincrementOffsets( iv, dv3 );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tincrementOffsets( iv, dv4 );\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) 2025 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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( '@stdlib/ndarray-base-nullary-loop-interchange-order' );\nvar blockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' );\nvar takeIndexed = require( '@stdlib/array-base-take-indexed' );\nvar copyIndexed = require( '@stdlib/array-base-copy-indexed' );\nvar zeros = require( '@stdlib/array-base-zeros' );\nvar incrementOffsets = require( './increment_offsets.js' );\nvar setViewOffsets = require( './set_view_offsets.js' );\nvar offsets = require( './offsets.js' );\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array<Object>} arrays - ndarrays\n* @param {Array<Object>} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the ndarray\n* @param {Object} strategyX - strategy for marshaling data to and from an ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* var ndarray2array = require( '@stdlib/ndarray-base-to-array' );\n* var getStride = require( '@stdlib/ndarray-base-stride' );\n* var getOffset = require( '@stdlib/ndarray-base-offset' );\n* var getData = require( '@stdlib/ndarray-base-data-buffer' );\n* var numelDimension = require( '@stdlib/ndarray-base-numel-dimension' );\n* var ndarraylike2scalar = require( '@stdlib/ndarray-base-ndarraylike2scalar' );\n* var gsorthp = require( '@stdlib/blas-ext-base-gsorthp' ).ndarray;\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var o = arrays[ 1 ];\n* return gsorthp( numelDimension( x, 0 ), ndarraylike2scalar( o ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = [ 12.0, 11.0, 10.0, 9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0 ];\n*\n* // Define an array shape:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an ndarray-like object for the sort order:\n* var sortOrder = {\n* 'dtype': 'generic',\n* 'data': [ 1.0 ],\n* 'shape': [ 1, 1, 1, 1, 1, 3 ],\n* 'strides': [ 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Initialize ndarray-like objects representing sub-array views:\n* var views = [\n* {\n* 'dtype': x.dtype,\n* 'data': x.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': x.offset,\n* 'order': x.order\n* },\n* {\n* 'dtype': sortOrder.dtype,\n* 'data': sortOrder.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sortOrder.offset,\n* 'order': sortOrder.order\n* }\n* ];\n*\n* // Define an input strategy:\n* function inputStrategy( x ) {\n* return {\n* 'dtype': x.dtype,\n* 'data': x.data,\n* 'shape': [ 4 ],\n* 'strides': [ 1 ],\n* 'offset': x.offset,\n* 'order': x.order\n* };\n* }\n*\n* // Define an output strategy:\n* function outputStrategy( x ) {\n* return x;\n* }\n*\n* var strategy = {\n* 'input': inputStrategy,\n* 'output': outputStrategy\n* }\n*\n* // Apply strided function:\n* blockednullary6d( wrapper, [ x, sortOrder ], views, [ 1, 1, 1, 1, 1, 3 ], [ 12, 12, 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( x.data, x.shape, x.strides, x.offset, x.order );\n* // returns [ [ [ [ [ [ [ [ 9.0, 10.0 ], [ 11.0, 12.0 ] ], [ [ 5.0, 6.0 ], [ 7.0, 8.0 ] ], [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] ] ] ] ] ]\n*/\nfunction blockednullary6d( fcn, arrays, views, shape, stridesX, strategyX, opts ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\n\tvar ov1;\n\tvar ov2;\n\tvar ov3;\n\tvar ov4;\n\tvar ov5;\n\tvar sh;\n\tvar s0;\n\tvar s1;\n\tvar s2;\n\tvar s3;\n\tvar s4;\n\tvar s5;\n\tvar sv;\n\tvar ov;\n\tvar iv;\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 N;\n\tvar x;\n\tvar v;\n\tvar o;\n\tvar k;\n\n\t// Note on variable naming convention: S#, dv#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\tN = arrays.length;\n\tx = arrays[ 0 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( shape, stridesX);\n\tsh = o.sh;\n\tsv = [ o.sx ];\n\tfor ( k = 1; k < N; k++ ) {\n\t\tsv.push( takeIndexed( arrays[k].strides, o.idx ) );\n\t}\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Resolve a list of pointers to the first indexed elements in the respective ndarrays:\n\tov = offsets( arrays );\n\n\t// Cache offset increments for the innermost loop...\n\tdv0 = [];\n\tfor ( k = 0; k < N; k++ ) {\n\t\tdv0.push( sv[k][0] );\n\t}\n\t// Initialize loop variables...\n\tov1 = zeros( N );\n\tov2 = zeros( N );\n\tov3 = zeros( N );\n\tov4 = zeros( N );\n\tov5 = zeros( N );\n\tdv1 = zeros( N );\n\tdv2 = zeros( N );\n\tdv3 = zeros( N );\n\tdv4 = zeros( N );\n\tdv5 = zeros( N );\n\tiv = zeros( N );\n\n\t// Shallow copy the list of views to an internal array so that we can update with reshaped views without impacting the original list of views:\n\tv = copyIndexed( views );\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\tfor ( k = 0; k < N; k++ ) {\n\t\t\tov5[ k ] = ov[k] + ( j5*sv[k][5] );\n\t\t}\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\tfor ( k = 0; k < N; k++ ) {\n\t\t\t\tdv5 = sv[k][5] - ( s4*sv[k][4] );\n\t\t\t\tov4[ k ] = ov5[k] + ( j4*sv[k][4] );\n\t\t\t}\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\tfor ( k = 0; k < N; k++ ) {\n\t\t\t\t\tdv4[ k ] = sv[k][4] - ( s3*sv[k][3] );\n\t\t\t\t\tov3[ k ] = ov4[k] + ( j3*sv[k][3] );\n\t\t\t\t}\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\tfor ( k = 0; k < N; k++ ) {\n\t\t\t\t\t\tdv3[ k ] = sv[k][3] - ( s2*sv[k][2] );\n\t\t\t\t\t\tov2[ k ] = ov3[k] + ( j2*sv[k][2] );\n\t\t\t\t\t}\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\tfor ( k = 0; k < N; k++ ) {\n\t\t\t\t\t\t\tdv2[ k ] = sv[k][2] - ( s1*sv[k][1] );\n\t\t\t\t\t\t\tov1[ k ] = ov2[k] + ( j1*sv[k][1] );\n\t\t\t\t\t\t}\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 and loop offset increments for the first ndarray elements in the current block...\n\t\t\t\t\t\t\tfor ( k = 0; k < N; k++ ) {\n\t\t\t\t\t\t\t\tiv[ k ] = ov1[k] + ( j0*sv[k][0] );\n\t\t\t\t\t\t\t\tdv1[ k ] = sv[k][1] - ( s0*sv[k][0] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Iterate over the loop 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\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategyX.input( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\tfcn( v, opts );\n\t\t\t\t\t\t\t\t\t\t\t\t\tstrategyX.output( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\tincrementOffsets( iv, dv0 );\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\tincrementOffsets( iv, dv1 );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tincrementOffsets( iv, dv2 );\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tincrementOffsets( iv, dv3 );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tincrementOffsets( iv, dv4 );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tincrementOffsets( iv, dv5 );\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) 2025 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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( '@stdlib/ndarray-base-nullary-loop-interchange-order' );\nvar blockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' );\nvar takeIndexed = require( '@stdlib/array-base-take-indexed' );\nvar copyIndexed = require( '@stdlib/array-base-copy-indexed' );\nvar zeros = require( '@stdlib/array-base-zeros' );\nvar incrementOffsets = require( './increment_offsets.js' );\nvar setViewOffsets = require( './set_view_offsets.js' );\nvar offsets = require( './offsets.js' );\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array<Object>} arrays - ndarrays\n* @param {Array<Object>} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the ndarray\n* @param {Object} strategyX - strategy for marshaling data to and from an ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* var ndarray2array = require( '@stdlib/ndarray-base-to-array' );\n* var getStride = require( '@stdlib/ndarray-base-stride' );\n* var getOffset = require( '@stdlib/ndarray-base-offset' );\n* var getData = require( '@stdlib/ndarray-base-data-buffer' );\n* var numelDimension = require( '@stdlib/ndarray-base-numel-dimension' );\n* var ndarraylike2scalar = require( '@stdlib/ndarray-base-ndarraylike2scalar' );\n* var gsorthp = require( '@stdlib/blas-ext-base-gsorthp' ).ndarray;\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var o = arrays[ 1 ];\n* return gsorthp( numelDimension( x, 0 ), ndarraylike2scalar( o ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = [ 12.0, 11.0, 10.0, 9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0 ];\n*\n* // Define an array shape:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an ndarray-like object for the sort order:\n* var sortOrder = {\n* 'dtype': 'generic',\n* 'data': [ 1.0 ],\n* 'shape': [ 1, 1, 1, 1, 1, 1, 3 ],\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Initialize ndarray-like objects representing sub-array views:\n* var views = [\n* {\n* 'dtype': x.dtype,\n* 'data': x.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': x.offset,\n* 'order': x.order\n* },\n* {\n* 'dtype': sortOrder.dtype,\n* 'data': sortOrder.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sortOrder.offset,\n* 'order': sortOrder.order\n* }\n* ];\n*\n* // Define an input strategy:\n* function inputStrategy( x ) {\n* return {\n* 'dtype': x.dtype,\n* 'data': x.data,\n* 'shape': [ 4 ],\n* 'strides': [ 1 ],\n* 'offset': x.offset,\n* 'order': x.order\n* };\n* }\n*\n* // Define an output strategy:\n* function outputStrategy( x ) {\n* return x;\n* }\n*\n* var strategy = {\n* 'input': inputStrategy,\n* 'output': outputStrategy\n* }\n*\n* // Apply strided function:\n* blockednullary7d( wrapper, [ x, sortOrder ], views, [ 1, 1, 1, 1, 1, 1, 3 ], [ 12, 12, 12, 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( x.data, x.shape, x.strides, x.offset, x.order );\n* // returns [ [ [ [ [ [ [ [ [ 9.0, 10.0 ], [ 11.0, 12.0 ] ], [ [ 5.0, 6.0 ], [ 7.0, 8.0 ] ], [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] ] ] ] ] ] ]\n*/\nfunction blockednullary7d( fcn, arrays, views, shape, stridesX, strategyX, opts ) { // eslint-disable-line max-statements\n\tvar bsize;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\n\tvar dv6;\n\tvar ov1;\n\tvar ov2;\n\tvar ov3;\n\tvar ov4;\n\tvar ov5;\n\tvar ov6;\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 sv;\n\tvar ov;\n\tvar iv;\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 N;\n\tvar x;\n\tvar v;\n\tvar o;\n\tvar k;\n\n\t// Note on variable naming convention: S#, dv#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\tN = arrays.length;\n\tx = arrays[ 0 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( shape, stridesX );\n\tsh = o.sh;\n\tsv = [ o.sx ];\n\tfor ( k = 1; k < N; k++ ) {\n\t\tsv.push( takeIndexed( arrays[k].strides, o.idx ) );\n\t}\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Resolve a list of pointers to the first indexed elements in the respective ndarrays:\n\tov = offsets( arrays );\n\n\t// Cache offset increments for the innermost loop...\n\tdv0 = [];\n\tfor ( k = 0; k < N; k++ ) {\n\t\tdv0.push( sv[k][0] );\n\t}\n\t// Initialize loop variables...\n\tov1 = zeros( N );\n\tov2 = zeros( N );\n\tov3 = zeros( N );\n\tov4 = zeros( N );\n\tov5 = zeros( N );\n\tov6 = zeros( N );\n\tdv1 = zeros( N );\n\tdv2 = zeros( N );\n\tdv3 = zeros( N );\n\tdv4 = zeros( N );\n\tdv5 = zeros( N );\n\tdv6 = zeros( N );\n\tiv = zeros( N );\n\n\t// Shallow copy the list of views to an internal array so that we can update with reshaped views without impacting the original list of views:\n\tv = copyIndexed( views );\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\tfor ( k = 0; k < N; k++ ) {\n\t\t\tov6[ k ] = ov[k] + ( j6*sv[k][6] );\n\t\t}\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\tfor ( k = 0; k < N; k++ ) {\n\t\t\t\tdv6 = sv[k][6] - ( s5*sv[k][5] );\n\t\t\t\tov5[ k ] = ov6[k] + ( j5*sv[k][5] );\n\t\t\t}\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\tfor ( k = 0; k < N; k++ ) {\n\t\t\t\t\tdv5 = sv[k][5] - ( s4*sv[k][4] );\n\t\t\t\t\tov4[ k ] = ov5[k] + ( j4*sv[k][4] );\n\t\t\t\t}\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\tfor ( k = 0; k < N; k++ ) {\n\t\t\t\t\t\tdv4[ k ] = sv[k][4] - ( s3*sv[k][3] );\n\t\t\t\t\t\tov3[ k ] = ov4[k] + ( j3*sv[k][3] );\n\t\t\t\t\t}\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\tfor ( k = 0; k < N; k++ ) {\n\t\t\t\t\t\t\tdv3[ k ] = sv[k][3] - ( s2*sv[k][2] );\n\t\t\t\t\t\t\tov2[ k ] = ov3[k] + ( j2*sv[k][2] );\n\t\t\t\t\t\t}\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\tfor ( k = 0; k < N; k++ ) {\n\t\t\t\t\t\t\t\tdv2[ k ] = sv[k][2] - ( s1*sv[k][1] );\n\t\t\t\t\t\t\t\tov1[ k ] = ov2[k] + ( j1*sv[k][1] );\n\t\t\t\t\t\t\t}\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 and loop offset increments for the first ndarray elements in the current block...\n\t\t\t\t\t\t\t\tfor ( k = 0; k < N; k++ ) {\n\t\t\t\t\t\t\t\t\tiv[ k ] = ov1[k] + ( j0*sv[k][0] );\n\t\t\t\t\t\t\t\t\tdv1[ k ] = sv[k][1] - ( s0*sv[k][0] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Iterate over the loop 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\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategyX.input( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfcn( v, opts );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstrategyX.output( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tincrementOffsets( iv, dv0 );\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\tincrementOffsets( iv, dv1 );\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\tincrementOffsets( iv, dv2 );\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\tincrementOffsets( iv, dv3 );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tincrementOffsets( iv, dv4 );\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tincrementOffsets( iv, dv5 );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tincrementOffsets( iv, dv6 );\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) 2025 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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( '@stdlib/ndarray-base-nullary-loop-interchange-order' );\nvar blockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' );\nvar takeIndexed = require( '@stdlib/array-base-take-indexed' );\nvar copyIndexed = require( '@stdlib/array-base-copy-indexed' );\nvar zeros = require( '@stdlib/array-base-zeros' );\nvar incrementOffsets = require( './increment_offsets.js' );\nvar setViewOffsets = require( './set_view_offsets.js' );\nvar offsets = require( './offsets.js' );\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array<Object>} arrays - ndarrays\n* @param {Array<Object>} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the ndarray\n* @param {Object} strategyX - strategy for marshaling data to and from an ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* var ndarray2array = require( '@stdlib/ndarray-base-to-array' );\n* var getStride = require( '@stdlib/ndarray-base-stride' );\n* var getOffset = require( '@stdlib/ndarray-base-offset' );\n* var getData = require( '@stdlib/ndarray-base-data-buffer' );\n* var numelDimension = require( '@stdlib/ndarray-base-numel-dimension' );\n* var ndarraylike2scalar = require( '@stdlib/ndarray-base-ndarraylike2scalar' );\n* var gsorthp = require( '@stdlib/blas-ext-base-gsorthp' ).ndarray;\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var o = arrays[ 1 ];\n* return gsorthp( numelDimension( x, 0 ), ndarraylike2scalar( o ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = [ 12.0, 11.0, 10.0, 9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0 ];\n*\n* // Define an array shape:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an ndarray-like object for the sort order:\n* var sortOrder = {\n* 'dtype': 'generic',\n* 'data': [ 1.0 ],\n* 'shape': [ 1, 1, 1, 1, 1, 1, 1, 3 ],\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Initialize ndarray-like objects representing sub-array views:\n* var views = [\n* {\n* 'dtype': x.dtype,\n* 'data': x.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': x.offset,\n* 'order': x.order\n* },\n* {\n* 'dtype': sortOrder.dtype,\n* 'data': sortOrder.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sortOrder.offset,\n* 'order': sortOrder.order\n* }\n* ];\n*\n* // Define an input strategy:\n* function inputStrategy( x ) {\n* return {\n* 'dtype': x.dtype,\n* 'data': x.data,\n* 'shape': [ 4 ],\n* 'strides': [ 1 ],\n* 'offset': x.offset,\n* 'order': x.order\n* };\n* }\n*\n* // Define an output strategy:\n* function outputStrategy( x ) {\n* return x;\n* }\n*\n* var strategy = {\n* 'input': inputStrategy,\n* 'output': outputStrategy\n* }\n*\n* // Apply strided function:\n* blockednullary8d( wrapper, [ x, sortOrder ], views, [ 1, 1, 1, 1, 1, 1, 1, 3 ], [ 12, 12, 12, 12, 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( x.data, x.shape, x.strides, x.offset, x.order );\n* // returns [ [ [ [ [ [ [ [ [ [ 9.0, 10.0 ], [ 11.0, 12.0 ] ], [ [ 5.0, 6.0 ], [ 7.0, 8.0 ] ], [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] ] ] ] ] ] ] ]\n*/\nfunction blockednullary8d( fcn, arrays, views, shape, stridesX, strategyX, opts ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\n\tvar dv6;\n\tvar dv7;\n\tvar ov1;\n\tvar ov2;\n\tvar ov3;\n\tvar ov4;\n\tvar ov5;\n\tvar ov6;\n\tvar ov7;\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 sv;\n\tvar ov;\n\tvar iv;\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 N;\n\tvar x;\n\tvar v;\n\tvar o;\n\tvar k;\n\n\t// Note on variable naming convention: S#, dv#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\tN = arrays.length;\n\tx = arrays[ 0 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( shape, stridesX );\n\tsh = o.sh;\n\tsv = [ o.sx ];\n\tfor ( k = 1; k < N; k++ ) {\n\t\tsv.push( takeIndexed( arrays[k].strides, o.idx ) );\n\t}\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Resolve a list of pointers to the first indexed elements in the respective ndarrays:\n\tov = offsets( arrays );\n\n\t// Cache offset increments for the innermost loop...\n\tdv0 = [];\n\tfor ( k = 0; k < N; k++ ) {\n\t\tdv0.push( sv[k][0] );\n\t}\n\t// Initialize loop variables...\n\tov1 = zeros( N );\n\tov2 = zeros( N );\n\tov3 = zeros( N );\n\tov4 = zeros( N );\n\tov5 = zeros( N );\n\tov6 = zeros( N );\n\tov7 = zeros( N );\n\tdv1 = zeros( N );\n\tdv2 = zeros( N );\n\tdv3 = zeros( N );\n\tdv4 = zeros( N );\n\tdv5 = zeros( N );\n\tdv6 = zeros( N );\n\tdv7 = zeros( N );\n\tiv = zeros( N );\n\n\t// Shallow copy the list of views to an internal array so that we can update with reshaped views without impacting the original list of views:\n\tv = copyIndexed( views );\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\tfor ( k = 0; k < N; k++ ) {\n\t\t\tov7[ k ] = ov[k] + ( j7*sv[k][7] );\n\t\t}\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\tfor ( k = 0; k < N; k++ ) {\n\t\t\t\tdv7 = sv[k][7] - ( s6*sv[k][6] );\n\t\t\t\tov6[ k ] = ov7[k] + ( j6*sv[k][6] );\n\t\t\t}\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\tfor ( k = 0; k < N; k++ ) {\n\t\t\t\t\tdv6 = sv[k][6] - ( s5*sv[k][5] );\n\t\t\t\t\tov5[ k ] = ov6[k] + ( j5*sv[k][5] );\n\t\t\t\t}\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\tfor ( k = 0; k < N; k++ ) {\n\t\t\t\t\t\tdv5 = sv[k][5] - ( s4*sv[k][4] );\n\t\t\t\t\t\tov4[ k ] = ov5[k] + ( j4*sv[k][4] );\n\t\t\t\t\t}\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\tfor ( k = 0; k < N; k++ ) {\n\t\t\t\t\t\t\tdv4[ k ] = sv[k][4] - ( s3*sv[k][3] );\n\t\t\t\t\t\t\tov3[ k ] = ov4[k] + ( j3*sv[k][3] );\n\t\t\t\t\t\t}\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\tfor ( k = 0; k < N; k++ ) {\n\t\t\t\t\t\t\t\tdv3[ k ] = sv[k][3] - ( s2*sv[k][2] );\n\t\t\t\t\t\t\t\tov2[ k ] = ov3[k] + ( j2*sv[k][2] );\n\t\t\t\t\t\t\t}\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\tfor ( k = 0; k < N; k++ ) {\n\t\t\t\t\t\t\t\t\tdv2[ k ] = sv[k][2] - ( s1*sv[k][1] );\n\t\t\t\t\t\t\t\t\tov1[ k ] = ov2[k] + ( j1*sv[k][1] );\n\t\t\t\t\t\t\t\t}\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 and loop offset increments for the first ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\tfor ( k = 0; k < N; k++ ) {\n\t\t\t\t\t\t\t\t\t\tiv[ k ] = ov1[k] + ( j0*sv[k][0] );\n\t\t\t\t\t\t\t\t\t\tdv1[ k ] = sv[k][1] - ( s0*sv[k][0] );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Iterate over the loop 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\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategyX.input( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfcn( v, opts );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstrategyX.output( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tincrementOffsets( iv, dv0 );\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\tincrementOffsets( iv, dv1 );\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\tincrementOffsets( iv, dv2 );\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\tincrementOffsets( iv, dv3 );\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\tincrementOffsets( iv, dv4 );\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\tincrementOffsets( iv, dv5 );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tincrementOffsets( iv, dv6 );\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tincrementOffsets( iv, dv7 );\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) 2025 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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( '@stdlib/ndarray-base-nullary-loop-interchange-order' );\nvar blockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' );\nvar takeIndexed = require( '@stdlib/array-base-take-indexed' );\nvar copyIndexed = require( '@stdlib/array-base-copy-indexed' );\nvar zeros = require( '@stdlib/array-base-zeros' );\nvar incrementOffsets = require( './increment_offsets.js' );\nvar setViewOffsets = require( './set_view_offsets.js' );\nvar offsets = require( './offsets.js' );\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array<Object>} arrays - ndarrays\n* @param {Array<Object>} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the ndarray\n* @param {Object} strategyX - strategy for marshaling data to and from an ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* var ndarray2array = require( '@stdlib/ndarray-base-to-array' );\n* var getStride = require( '@stdlib/ndarray-base-stride' );\n* var getOffset = require( '@stdlib/ndarray-base-offset' );\n* var getData = require( '@stdlib/ndarray-base-data-buffer' );\n* var numelDimension = require( '@stdlib/ndarray-base-numel-dimension' );\n* var ndarraylike2scalar = require( '@stdlib/ndarray-base-ndarraylike2scalar' );\n* var gsorthp = require( '@stdlib/blas-ext-base-gsorthp' ).ndarray;\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var o = arrays[ 1 ];\n* return gsorthp( numelDimension( x, 0 ), ndarraylike2scalar( o ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = [ 12.0, 11.0, 10.0, 9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0 ];\n*\n* // Define an array shape:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n* var oy = 0;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an ndarray-like object for the sort order:\n* var sortOrder = {\n* 'dtype': 'generic',\n* 'data': [ 1.0 ],\n* 'shape': [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ],\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Initialize ndarray-like objects representing sub-array views:\n* var views = [\n* {\n* 'dtype': x.dtype,\n* 'data': x.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': x.offset,\n* 'order': x.order\n* },\n* {\n* 'dtype': sortOrder.dtype,\n* 'data': sortOrder.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sortOrder.offset,\n* 'order': sortOrder.order\n* }\n* ];\n*\n* // Define an input strategy:\n* function inputStrategy( x ) {\n* return {\n* 'dtype': x.dtype,\n* 'data': x.data,\n* 'shape': [ 4 ],\n* 'strides': [ 1 ],\n* 'offset': x.offset,\n* 'order': x.order\n* };\n* }\n*\n* // Define an output strategy:\n* function outputStrategy( x ) {\n* return x;\n* }\n*\n* var strategy = {\n* 'input': inputStrategy,\n* 'output': outputStrategy\n* }\n*\n* // Apply strided function:\n* blockednullary9d( wrapper, [ x, sortOrder ], views, [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ], [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( x.data, x.shape, x.strides, x.offset, x.order );\n* // returns [ [ [ [ [ [ [ [ [ [ [ 9.0, 10.0 ], [ 11.0, 12.0 ] ], [ [ 5.0, 6.0 ], [ 7.0, 8.0 ] ], [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] ] ] ] ] ] ] ] ]\n*/\nfunction blockednullary9d( fcn, arrays, views, shape, stridesX, strategyX, opts ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\n\tvar dv6;\n\tvar dv7;\n\tvar dv8;\n\tvar ov1;\n\tvar ov2;\n\tvar ov3;\n\tvar ov4;\n\tvar ov5;\n\tvar ov6;\n\tvar ov7;\n\tvar ov8;\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 sv;\n\tvar ov;\n\tvar iv;\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 N;\n\tvar x;\n\tvar v;\n\tvar o;\n\tvar k;\n\n\t// Note on variable naming convention: S#, dv#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\tN = arrays.length;\n\tx = arrays[ 0 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( shape, stridesX );\n\tsh = o.sh;\n\tsv = [ o.sx ];\n\tfor ( k = 1; k < N; k++ ) {\n\t\tsv.push( takeIndexed( arrays[k].strides, o.idx ) );\n\t}\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Resolve a list of pointers to the first indexed elements in the respective ndarrays:\n\tov = offsets( arrays );\n\n\t// Cache offset increments for the innermost loop...\n\tdv0 = [];\n\tfor ( k = 0; k < N; k++ ) {\n\t\tdv0.push( sv[k][0] );\n\t}\n\t// Initialize loop variables...\n\tov1 = zeros( N );\n\tov2 = zeros( N );\n\tov3 = zeros( N );\n\tov4 = zeros( N );\n\tov5 = zeros( N );\n\tov6 = zeros( N );\n\tov7 = zeros( N );\n\tov8 = zeros( N );\n\tdv1 = zeros( N );\n\tdv2 = zeros( N );\n\tdv3 = zeros( N );\n\tdv4 = zeros( N );\n\tdv5 = zeros( N );\n\tdv6 = zeros( N );\n\tdv7 = zeros( N );\n\tdv8 = zeros( N );\n\tiv = zeros( N );\n\n\t// Shallow copy the list of views to an internal array so that we can update with reshaped views without impacting the original list of views:\n\tv = copyIndexed( views );\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\tfor ( k = 0; k < N; k++ ) {\n\t\t\tov8[ k ] = ov[k] + ( j8*sv[k][8] );\n\t\t}\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\tfor ( k = 0; k < N; k++ ) {\n\t\t\t\tdv8 = sv[k][8] - ( s7*sv[k][7] );\n\t\t\t\tov7[ k ] = ov8[k] + ( j7*sv[k][7] );\n\t\t\t}\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\tfor ( k = 0; k < N; k++ ) {\n\t\t\t\t\tdv7 = sv[k][7] - ( s6*sv[k][6] );\n\t\t\t\t\tov6[ k ] = ov7[k] + ( j6*sv[k][6] );\n\t\t\t\t}\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\tfor ( k = 0; k < N; k++ ) {\n\t\t\t\t\t\tdv6 = sv[k][6] - ( s5*sv[k][5] );\n\t\t\t\t\t\tov5[ k ] = ov6[k] + ( j5*sv[k][5] );\n\t\t\t\t\t}\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\tfor ( k = 0; k < N; k++ ) {\n\t\t\t\t\t\t\tdv5 = sv[k][5] - ( s4*sv[k][4] );\n\t\t\t\t\t\t\tov4[ k ] = ov5[k] + ( j4*sv[k][4] );\n\t\t\t\t\t\t}\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\tfor ( k = 0; k < N; k++ ) {\n\t\t\t\t\t\t\t\tdv4[ k ] = sv[k][4] - ( s3*sv[k][3] );\n\t\t\t\t\t\t\t\tov3[ k ] = ov4[k] + ( j3*sv[k][3] );\n\t\t\t\t\t\t\t}\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\tfor ( k = 0; k < N; k++ ) {\n\t\t\t\t\t\t\t\t\tdv3[ k ] = sv[k][3] - ( s2*sv[k][2] );\n\t\t\t\t\t\t\t\t\tov2[ k ] = ov3[k] + ( j2*sv[k][2] );\n\t\t\t\t\t\t\t\t}\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\tfor ( k = 0; k < N; k++ ) {\n\t\t\t\t\t\t\t\t\t\tdv2[ k ] = sv[k][2] - ( s1*sv[k][1] );\n\t\t\t\t\t\t\t\t\t\tov1[ k ] = ov2[k] + ( j1*sv[k][1] );\n\t\t\t\t\t\t\t\t\t}\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 and loop offset increments for the first ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\tfor ( k = 0; k < N; k++ ) {\n\t\t\t\t\t\t\t\t\t\t\tiv[ k ] = ov1[k] + ( j0*sv[k][0] );\n\t\t\t\t\t\t\t\t\t\t\tdv1[ k ] = sv[k][1] - ( s0*sv[k][0] );\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// Iterate over the loop 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\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategyX.input( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfcn( v, opts );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstrategyX.output( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tincrementOffsets( iv, dv0 );\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\tincrementOffsets( iv, dv1 );\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\tincrementOffsets( iv, dv2 );\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\tincrementOffsets( iv, dv3 );\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\tincrementOffsets( iv, dv4 );\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\tincrementOffsets( iv, dv5 );\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\tincrementOffsets( iv, dv6 );\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\tincrementOffsets( iv, dv7 );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tincrementOffsets( iv, dv8 );\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) 2025 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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( '@stdlib/ndarray-base-nullary-loop-interchange-order' );\nvar blockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' );\nvar takeIndexed = require( '@stdlib/array-base-take-indexed' );\nvar copyIndexed = require( '@stdlib/array-base-copy-indexed' );\nvar zeros = require( '@stdlib/array-base-zeros' );\nvar incrementOffsets = require( './increment_offsets.js' );\nvar setViewOffsets = require( './set_view_offsets.js' );\nvar offsets = require( './offsets.js' );\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an ndarray via loop blocking.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array<Object>} arrays - ndarrays\n* @param {Array<Object>} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the ndarray\n* @param {Object} strategyX - strategy for marshaling data to and from an ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* var ndarray2array = require( '@stdlib/ndarray-base-to-array' );\n* var getStride = require( '@stdlib/ndarray-base-stride' );\n* var getOffset = require( '@stdlib/ndarray-base-offset' );\n* var getData = require( '@stdlib/ndarray-base-data-buffer' );\n* var numelDimension = require( '@stdlib/ndarray-base-numel-dimension' );\n* var ndarraylike2scalar = require( '@stdlib/ndarray-base-ndarraylike2scalar' );\n* var gsorthp = require( '@stdlib/blas-ext-base-gsorthp' ).ndarray;\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var o = arrays[ 1 ];\n* return gsorthp( numelDimension( x, 0 ), ndarraylike2scalar( o ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = [ 12.0, 11.0, 10.0, 9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0 ];\n*\n* // Define an array shape:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an ndarray-like object for the sort order:\n* var sortOrder = {\n* 'dtype': 'generic',\n* 'data': [ 1.0 ],\n* 'shape': [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ],\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Initialize ndarray-like objects representing sub-array views:\n* var views = [\n* {\n* 'dtype': x.dtype,\n* 'data': x.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': x.offset,\n* 'order': x.order\n* },\n* {\n* 'dtype': sortOrder.dtype,\n* 'data': sortOrder.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sortOrder.offset,\n* 'order': sortOrder.order\n* }\n* ];\n*\n* // Define an input strategy:\n* function inputStrategy( x ) {\n* return {\n* 'dtype': x.dtype,\n* 'data': x.data,\n* 'shape': [ 4 ],\n* 'strides': [ 1 ],\n* 'offset': x.offset,\n* 'order': x.order\n* };\n* }\n*\n* // Define an output strategy:\n* function outputStrategy( x ) {\n* return x;\n* }\n*\n* var strategy = {\n* 'input': inputStrategy,\n* 'output': outputStrategy\n* }\n*\n* // Apply strided function:\n* blockednullary10d( wrapper, [ x, sortOrder ], views, [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ], [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], strategy, {} );\n*\n* var arr = ndarray2array( x.data, x.shape, x.strides, x.offset, x.order );\n* // returns [ [ [ [ [ [ [ [ [ [ [ [ 9.0, 10.0 ], [ 11.0, 12.0 ] ], [ [ 5.0, 6.0 ], [ 7.0, 8.0 ] ], [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] ] ] ] ] ] ] ] ] ]\n*/\nfunction blockednullary10d( fcn, arrays, views, shape, stridesX, strategyX, opts ) { // eslint-disable-line max-statements, max-lines-per-function\n\tvar bsize;\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\n\tvar dv6;\n\tvar dv7;\n\tvar dv8;\n\tvar dv9;\n\tvar ov1;\n\tvar ov2;\n\tvar ov3;\n\tvar ov4;\n\tvar ov5;\n\tvar ov6;\n\tvar ov7;\n\tvar ov8;\n\tvar ov9;\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 sv;\n\tvar ov;\n\tvar iv;\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 N;\n\tvar x;\n\tvar v;\n\tvar o;\n\tvar k;\n\n\t// Note on variable naming convention: S#, dv#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop...\n\n\tN = arrays.length;\n\tx = arrays[ 0 ];\n\n\t// Resolve the loop interchange order:\n\to = loopOrder( shape, stridesX );\n\tsh = o.sh;\n\tsv = [ o.sx ];\n\tfor ( k = 1; k < N; k++ ) {\n\t\tsv.push( takeIndexed( arrays[k].strides, o.idx ) );\n\t}\n\t// Determine the block size:\n\tbsize = blockSize( x.dtype );\n\n\t// Resolve a list of pointers to the first indexed elements in the respective ndarrays:\n\tov = offsets( arrays );\n\n\t// Cache offset increments for the innermost loop...\n\tdv0 = [];\n\tfor ( k = 0; k < N; k++ ) {\n\t\tdv0.push( sv[k][0] );\n\t}\n\t// Initialize loop variables...\n\tov1 = zeros( N );\n\tov2 = zeros( N );\n\tov3 = zeros( N );\n\tov4 = zeros( N );\n\tov5 = zeros( N );\n\tov6 = zeros( N );\n\tov7 = zeros( N );\n\tov8 = zeros( N );\n\tov9 = zeros( N );\n\tdv1 = zeros( N );\n\tdv2 = zeros( N );\n\tdv3 = zeros( N );\n\tdv4 = zeros( N );\n\tdv5 = zeros( N );\n\tdv6 = zeros( N );\n\tdv7 = zeros( N );\n\tdv8 = zeros( N );\n\tdv9 = zeros( N );\n\tiv = zeros( N );\n\n\t// Shallow copy the list of views to an internal array so that we can update with reshaped views without impacting the original list of views:\n\tv = copyIndexed( views );\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\tfor ( k = 0; k < N; k++ ) {\n\t\t\tov9[ k ] = ov[k] + ( j9*sv[k][9] );\n\t\t}\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\tfor ( k = 0; k < N; k++ ) {\n\t\t\t\tdv9 = sv[k][9] - ( s8*sv[k][8] );\n\t\t\t\tov8[ k ] = ov9[k] + ( j8*sv[k][8] );\n\t\t\t}\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\tfor ( k = 0; k < N; k++ ) {\n\t\t\t\t\tdv8 = sv[k][8] - ( s7*sv[k][7] );\n\t\t\t\t\tov7[ k ] = ov8[k] + ( j7*sv[k][7] );\n\t\t\t\t}\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\tfor ( k = 0; k < N; k++ ) {\n\t\t\t\t\t\tdv7 = sv[k][7] - ( s6*sv[k][6] );\n\t\t\t\t\t\tov6[ k ] = ov7[k] + ( j6*sv[k][6] );\n\t\t\t\t\t}\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\tfor ( k = 0; k < N; k++ ) {\n\t\t\t\t\t\t\tdv6 = sv[k][6] - ( s5*sv[k][5] );\n\t\t\t\t\t\t\tov5[ k ] = ov6[k] + ( j5*sv[k][5] );\n\t\t\t\t\t\t}\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\tfor ( k = 0; k < N; k++ ) {\n\t\t\t\t\t\t\t\tdv5 = sv[k][5] - ( s4*sv[k][4] );\n\t\t\t\t\t\t\t\tov4[ k ] = ov5[k] + ( j4*sv[k][4] );\n\t\t\t\t\t\t\t}\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\tfor ( k = 0; k < N; k++ ) {\n\t\t\t\t\t\t\t\t\tdv4[ k ] = sv[k][4] - ( s3*sv[k][3] );\n\t\t\t\t\t\t\t\t\tov3[ k ] = ov4[k] + ( j3*sv[k][3] );\n\t\t\t\t\t\t\t\t}\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\tfor ( k = 0; k < N; k++ ) {\n\t\t\t\t\t\t\t\t\t\tdv3[ k ] = sv[k][3] - ( s2*sv[k][2] );\n\t\t\t\t\t\t\t\t\t\tov2[ k ] = ov3[k] + ( j2*sv[k][2] );\n\t\t\t\t\t\t\t\t\t}\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\tfor ( k = 0; k < N; k++ ) {\n\t\t\t\t\t\t\t\t\t\t\tdv2[ k ] = sv[k][2] - ( s1*sv[k][1] );\n\t\t\t\t\t\t\t\t\t\t\tov1[ k ] = ov2[k] + ( j1*sv[k][1] );\n\t\t\t\t\t\t\t\t\t\t}\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 and loop offset increments for the first ndarray elements in the current block...\n\t\t\t\t\t\t\t\t\t\t\tfor ( k = 0; k < N; k++ ) {\n\t\t\t\t\t\t\t\t\t\t\t\tiv[ k ] = ov1[k] + ( j0*sv[k][0] );\n\t\t\t\t\t\t\t\t\t\t\t\tdv1[ k ] = sv[k][1] - ( s0*sv[k][0] );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// Iterate over the loop 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\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategyX.input( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfcn( v, opts );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstrategyX.output( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tincrementOffsets( iv, dv0 );\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\tincrementOffsets( iv, dv1 );\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\tincrementOffsets( iv, dv2 );\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\tincrementOffsets( iv, dv3 );\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\tincrementOffsets( iv, dv4 );\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\tincrementOffsets( iv, dv5 );\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\tincrementOffsets( iv, dv6 );\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\tincrementOffsets( iv, dv7 );\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\tincrementOffsets( iv, dv8 );\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\tincrementOffsets( iv, dv9 );\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) 2025 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the 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 one-dimensional strided array function to a list of specified dimensions in an ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array function\n* @param {Array<Object>} arrays - ndarrays\n* @param {Object} strategyX - strategy for marshaling data to and from an ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* var ndarray2array = require( '@stdlib/ndarray-base-to-array' );\n* var getStride = require( '@stdlib/ndarray-base-stride' );\n* var getOffset = require( '@stdlib/ndarray-base-offset' );\n* var getData = require( '@stdlib/ndarray-base-data-buffer' );\n* var numelDimension = require( '@stdlib/ndarray-base-numel-dimension' );\n* var ndarraylike2scalar = require( '@stdlib/ndarray-base-ndarraylike2scalar' );\n* var gsorthp = require( '@stdlib/blas-ext-base-gsorthp' ).ndarray;\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var o = arrays[ 1 ];\n* return gsorthp( numelDimension( x, 0 ), ndarraylike2scalar( o ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = [ 4.0, 3.0, 2.0, 1.0 ];\n*\n* // Define an array shape:\n* var xsh = [ 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* // Create an ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an ndarray-like object for the sort order:\n* var sortOrder = {\n* 'dtype': 'generic',\n* 'data': [ 1.0 ],\n* 'shape': [ 3 ],\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Define an input strategy:\n* function inputStrategy( x ) {\n* return {\n* 'dtype': x.dtype,\n* 'data': x.data,\n* 'shape': [ 4 ],\n* 'strides': [ 1 ],\n* 'offset': x.offset,\n* 'order': x.order\n* };\n* }\n*\n* // Define an output strategy:\n* function outputStrategy( x ) {\n* return x;\n* }\n*\n* var strategy = {\n* 'input': inputStrategy,\n* 'output': outputStrategy\n* }\n*\n* // Apply strided function:\n* nullary0d( wrapper, [ x, sortOrder ], strategy, {} );\n*\n* var v = x.data;\n* // returns [ 1.0, 2.0, 3.0, 4.0 ]\n*/\nfunction nullary0d( fcn, arrays, strategyX, opts ) {\n\tarrays[ 0 ] = strategyX.input( arrays[ 0 ] );\n\tfcn( arrays, opts );\n\tstrategyX.output( arrays[ 0 ] );\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary0d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2025 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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' );\nvar incrementOffsets = require( './increment_offsets.js' );\nvar setViewOffsets = require( './set_view_offsets.js' );\nvar offsets = require( './offsets.js' );\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array function\n* @param {Array<Object>} arrays - ndarrays\n* @param {Array<Object>} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the ndarray\n* @param {Object} strategyX - strategy for marshaling data to and from an ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* var ndarray2array = require( '@stdlib/ndarray-base-to-array' );\n* var getStride = require( '@stdlib/ndarray-base-stride' );\n* var getOffset = require( '@stdlib/ndarray-base-offset' );\n* var getData = require( '@stdlib/ndarray-base-data-buffer' );\n* var numelDimension = require( '@stdlib/ndarray-base-numel-dimension' );\n* var ndarraylike2scalar = require( '@stdlib/ndarray-base-ndarraylike2scalar' );\n* var gsorthp = require( '@stdlib/blas-ext-base-gsorthp' ).ndarray;\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var o = arrays[ 1 ];\n* return gsorthp( numelDimension( x, 0 ), ndarraylike2scalar( o ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = [ 12.0, 11.0, 10.0, 9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0 ];\n*\n* // Define an array shape:\n* var xsh = [ 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an ndarray-like object for the sort order:\n* var sortOrder = {\n* 'dtype': 'generic',\n* 'data': [ 1.0 ],\n* 'shape': [ 3 ],\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Initialize ndarray-like objects representing sub-array views:\n* var views = [\n* {\n* 'dtype': x.dtype,\n* 'data': x.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': x.offset,\n* 'order': x.order\n* },\n* {\n* 'dtype': sortOrder.dtype,\n* 'data': sortOrder.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sortOrder.offset,\n* 'order': sortOrder.order\n* }\n* ];\n*\n* // Define an input strategy:\n* function inputStrategy( x ) {\n* return {\n* 'dtype': x.dtype,\n* 'data': x.data,\n* 'shape': [ 4 ],\n* 'strides': [ 1 ],\n* 'offset': x.offset,\n* 'order': x.order\n* };\n* }\n*\n* // Define an output strategy:\n* function outputStrategy( x ) {\n* return x;\n* }\n*\n* var strategy = {\n* 'input': inputStrategy,\n* 'output': outputStrategy\n* }\n*\n* // Apply strided function:\n* nullary1d( wrapper, [ x, sortOrder ], views, [ 3 ], [ 4 ], strategy, {} );\n*\n* var arr = ndarray2array( x.data, x.shape, x.strides, x.offset, x.order );\n* // returns [ [ [ 9.0, 10.0 ], [ 11.0, 12.0 ] ], [ [ 5.0, 6.0 ], [ 7.0, 8.0 ] ], [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ]\n*/\nfunction nullary1d( fcn, arrays, views, shape, stridesX, strategyX, opts ) {\n\tvar dv0;\n\tvar S0;\n\tvar iv;\n\tvar i0;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dv#, 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\tS0 = shape[ 0 ];\n\tdv0 = [\n\t\tstridesX[0]\n\t];\n\tfor ( i = 1; i < arrays.length; i++ ) {\n\t\tdv0.push( arrays[i].strides[0] );\n\t}\n\t// Resolve a list of pointers to the first indexed elements in the respective ndarrays:\n\tiv = offsets( arrays );\n\n\t// Shallow copy the list of views to an internal array so that we can update with reshaped views without impacting the original list of views:\n\tv = copyIndexed( views );\n\n\t// Iterate over the loop dimensions...\n\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\tsetViewOffsets( views, iv );\n\t\tv[ 0 ] = strategyX.input( views[ 0 ] );\n\t\tfcn( v, opts );\n\t\tstrategyX.output( views[ 0 ] );\n\t\tincrementOffsets( iv, dv0 );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary1d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2025 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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' );\nvar incrementOffsets = require( './increment_offsets.js' );\nvar setViewOffsets = require( './set_view_offsets.js' );\nvar offsets = require( './offsets.js' );\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array function\n* @param {Array<Object>} arrays - ndarrays\n* @param {Array<Object>} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Object} strategyX - strategy for marshaling data to and from an ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* var ndarray2array = require( '@stdlib/ndarray-base-to-array' );\n* var getStride = require( '@stdlib/ndarray-base-stride' );\n* var getOffset = require( '@stdlib/ndarray-base-offset' );\n* var getData = require( '@stdlib/ndarray-base-data-buffer' );\n* var numelDimension = require( '@stdlib/ndarray-base-numel-dimension' );\n* var ndarraylike2scalar = require( '@stdlib/ndarray-base-ndarraylike2scalar' );\n* var gsorthp = require( '@stdlib/blas-ext-base-gsorthp' ).ndarray;\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var o = arrays[ 1 ];\n* return gsorthp( numelDimension( x, 0 ), ndarraylike2scalar( o ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = [ 12.0, 11.0, 10.0, 9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0 ];\n*\n* // Define an array shape:\n* var xsh = [ 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an ndarray-like object for the sort order:\n* var sortOrder = {\n* 'dtype': 'generic',\n* 'data': [ 1.0 ],\n* 'shape': [ 1, 3 ],\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Initialize ndarray-like objects representing sub-array views:\n* var views = [\n* {\n* 'dtype': x.dtype,\n* 'data': x.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': x.offset,\n* 'order': x.order\n* },\n* {\n* 'dtype': sortOrder.dtype,\n* 'data': sortOrder.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sortOrder.offset,\n* 'order': sortOrder.order\n* }\n* ];\n*\n* // Define an input strategy:\n* function inputStrategy( x ) {\n* return {\n* 'dtype': x.dtype,\n* 'data': x.data,\n* 'shape': [ 4 ],\n* 'strides': [ 1 ],\n* 'offset': x.offset,\n* 'order': x.order\n* };\n* }\n*\n* // Define an output strategy:\n* function outputStrategy( x ) {\n* return x;\n* }\n*\n* var strategy = {\n* 'input': inputStrategy,\n* 'output': outputStrategy\n* }\n*\n* // Apply strided function:\n* nullary2d( wrapper, [ x, sortOrder ], views, [ 1, 3 ], [ 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( x.data, x.shape, x.strides, x.offset, x.order );\n* // returns [ [ [ [ 9.0, 10.0 ], [ 11.0, 12.0 ] ], [ [ 5.0, 6.0 ], [ 7.0, 8.0 ] ], [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] ]\n*/\nfunction nullary2d( fcn, arrays, views, shape, stridesX, isRowMajor, strategyX, opts ) { // eslint-disable-line max-len\n\tvar dv0;\n\tvar dv1;\n\tvar S0;\n\tvar S1;\n\tvar sv;\n\tvar iv;\n\tvar i0;\n\tvar i1;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dv#, 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\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = shape[ 1 ];\n\t\tS1 = shape[ 0 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[1]\n\t\t];\n\t\tdv1 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S0*stridesX[1] )\n\t\t];\n\t\tfor ( i = 1; i < arrays.length; i++ ) {\n\t\t\tsv = arrays[ i ].strides;\n\t\t\tdv0.push( sv[1] );\n\t\t\tdv1.push( sv[0] - ( S0*sv[1] ) );\n\t\t}\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = shape[ 0 ];\n\t\tS1 = shape[ 1 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[0]\n\t\t];\n\t\tdv1 = [ // offset increment for outermost loop\n\t\t\tstridesX[1] - ( S0*stridesX[0] )\n\t\t];\n\t\tfor ( i = 1; i < arrays.length; i++ ) {\n\t\t\tsv = arrays[ i ].strides;\n\t\t\tdv0.push( sv[0] );\n\t\t\tdv1.push( sv[1] - ( S0*sv[0] ) );\n\t\t}\n\t}\n\t// Resolve a list of pointers to the first indexed elements in the respective ndarrays:\n\tiv = offsets( arrays );\n\n\t// Shallow copy the list of views to an internal array so that we can update with reshaped views without impacting the original list of views:\n\tv = copyIndexed( views );\n\n\t// Iterate over the loop dimensions...\n\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\tsetViewOffsets( views, iv );\n\t\t\tv[ 0 ] = strategyX.input( views[ 0 ] );\n\t\t\tfcn( v, opts );\n\t\t\tstrategyX.output( views[ 0 ]);\n\t\t\tincrementOffsets( iv, dv0 );\n\t\t}\n\t\tincrementOffsets( iv, dv1 );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary2d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2025 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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' );\nvar incrementOffsets = require( './increment_offsets.js' );\nvar setViewOffsets = require( './set_view_offsets.js' );\nvar offsets = require( './offsets.js' );\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array<Object>} arrays - ndarrays\n* @param {Array<Object>} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Object} strategyX - strategy for marshaling data to and from an ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* var ndarray2array = require( '@stdlib/ndarray-base-to-array' );\n* var getStride = require( '@stdlib/ndarray-base-stride' );\n* var getOffset = require( '@stdlib/ndarray-base-offset' );\n* var getData = require( '@stdlib/ndarray-base-data-buffer' );\n* var numelDimension = require( '@stdlib/ndarray-base-numel-dimension' );\n* var ndarraylike2scalar = require( '@stdlib/ndarray-base-ndarraylike2scalar' );\n* var gsorthp = require( '@stdlib/blas-ext-base-gsorthp' ).ndarray;\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var o = arrays[ 1 ];\n* return gsorthp( numelDimension( x, 0 ), ndarraylike2scalar( o ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = [ 12.0, 11.0, 10.0, 9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0 ];\n*\n* // Define an array shape:\n* var xsh = [ 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an ndarray-like object for the sort order:\n* var sortOrder = {\n* 'dtype': 'generic',\n* 'data': [ 1.0 ],\n* 'shape': [ 1, 1, 3 ],\n* 'strides': [ 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Initialize ndarray-like objects representing sub-array views:\n* var views = [\n* {\n* 'dtype': x.dtype,\n* 'data': x.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': x.offset,\n* 'order': x.order\n* },\n* {\n* 'dtype': sortOrder.dtype,\n* 'data': sortOrder.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sortOrder.offset,\n* 'order': sortOrder.order\n* }\n* ];\n*\n* // Define an input strategy:\n* function inputStrategy( x ) {\n* return {\n* 'dtype': x.dtype,\n* 'data': x.data,\n* 'shape': [ 4 ],\n* 'strides': [ 1 ],\n* 'offset': x.offset,\n* 'order': x.order\n* };\n* }\n*\n* // Define an output strategy:\n* function outputStrategy( x ) {\n* return x;\n* }\n*\n* var strategy = {\n* 'input': inputStrategy,\n* 'output': outputStrategy\n* }\n*\n* // Apply strided function:\n* nullary3d( wrapper, [ x, sortOrder ], views, [ 1, 1, 3 ], [ 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( x.data, x.shape, x.strides, x.offset, x.order );\n* // returns [ [ [ [ [ 9.0, 10.0 ], [ 11.0, 12.0 ] ], [ [ 5.0, 6.0 ], [ 7.0, 8.0 ] ], [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] ] ]\n*/\nfunction nullary3d( fcn, arrays, views, shape, stridesX, isRowMajor, strategyX, opts ) { // eslint-disable-line max-len\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar sv;\n\tvar iv;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar v;\n\tvar i;\n\n\t// Note on variable naming convention: S#, dv#, 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\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = shape[ 2 ];\n\t\tS1 = shape[ 1 ];\n\t\tS2 = shape[ 0 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[2]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[2] )\n\t\t];\n\t\tdv2 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S1*stridesX[1] )\n\t\t];\n\t\tfor ( i = 1; i < arrays.length; i++ ) {\n\t\t\tsv = arrays[ i ].strides;\n\t\t\tdv0.push( sv[2] );\n\t\t\tdv1.push( sv[1] - ( S0*sv[2] ) );\n\t\t\tdv2.push( sv[0] - ( S1*sv[1] ) );\n\t\t}\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = shape[ 0 ];\n\t\tS1 = shape[ 1 ];\n\t\tS2 = shape[ 2 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] )\n\t\t];\n\t\tdv2 = [ // offset increment for outermost loop\n\t\t\tstridesX[2] - ( S1*stridesX[1] )\n\t\t];\n\t\tfor ( i = 1; i < arrays.length; i++ ) {\n\t\t\tsv = arrays[ i ].strides;\n\t\t\tdv0.push( sv[0] );\n\t\t\tdv1.push( sv[1] - ( S0*sv[0] ) );\n\t\t\tdv2.push( sv[2] - ( S1*sv[1] ) );\n\t\t}\n\t}\n\t// Resolve a list of pointers to the first indexed elements in the respective ndarrays:\n\tiv = offsets( arrays );\n\n\t// Shallow copy the list of views to an internal array so that we can update with reshaped views without impacting the original list of views:\n\tv = copyIndexed( views );\n\n\t// Iterate over the loop 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\tsetViewOffsets( views, iv );\n\t\t\t\tv[ 0 ] = strategyX.input( views[ 0 ] );\n\t\t\t\tfcn( v, opts );\n\t\t\t\tstrategyX.output( views[ 0 ] );\n\t\t\t\tincrementOffsets( iv, dv0 );\n\t\t\t}\n\t\t\tincrementOffsets( iv, dv1 );\n\t\t}\n\t\tincrementOffsets( iv, dv2 );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2025 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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' );\nvar incrementOffsets = require( './increment_offsets.js' );\nvar setViewOffsets = require( './set_view_offsets.js' );\nvar offsets = require( './offsets.js' );\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array<Object>} arrays - ndarrays\n* @param {Array<Object>} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Object} strategyX - strategy for marshaling data to and from an ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* var ndarray2array = require( '@stdlib/ndarray-base-to-array' );\n* var getStride = require( '@stdlib/ndarray-base-stride' );\n* var getOffset = require( '@stdlib/ndarray-base-offset' );\n* var getData = require( '@stdlib/ndarray-base-data-buffer' );\n* var numelDimension = require( '@stdlib/ndarray-base-numel-dimension' );\n* var ndarraylike2scalar = require( '@stdlib/ndarray-base-ndarraylike2scalar' );\n* var gsorthp = require( '@stdlib/blas-ext-base-gsorthp' ).ndarray;\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var o = arrays[ 1 ];\n* return gsorthp( numelDimension( x, 0 ), ndarraylike2scalar( o ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = [ 12.0, 11.0, 10.0, 9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0 ];\n*\n* // Define an array shape:\n* var xsh = [ 1, 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an ndarray-like object for the sort order:\n* var sortOrder = {\n* 'dtype': 'generic',\n* 'data': [ 1.0 ],\n* 'shape': [ 1, 1, 1, 3 ],\n* 'strides': [ 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Initialize ndarray-like objects representing sub-array views:\n* var views = [\n* {\n* 'dtype': x.dtype,\n* 'data': x.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': x.offset,\n* 'order': x.order\n* },\n* {\n* 'dtype': sortOrder.dtype,\n* 'data': sortOrder.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sortOrder.offset,\n* 'order': sortOrder.order\n* }\n* ];\n*\n* // Define an input strategy:\n* function inputStrategy( x ) {\n* return {\n* 'dtype': x.dtype,\n* 'data': x.data,\n* 'shape': [ 4 ],\n* 'strides': [ 1 ],\n* 'offset': x.offset,\n* 'order': x.order\n* };\n* }\n*\n* // Define an output strategy:\n* function outputStrategy( x ) {\n* return x;\n* }\n*\n* var strategy = {\n* 'input': inputStrategy,\n* 'output': outputStrategy\n* }\n*\n* // Apply strided function:\n* nullary4d( wrapper, [ x, sortOrder ], views, [ 1, 1, 1, 3 ], [ 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( x.data, x.shape, x.strides, x.offset, x.order );\n* // returns [ [ [ [ [ [ 9.0, 10.0 ], [ 11.0, 12.0 ] ], [ [ 5.0, 6.0 ], [ 7.0, 8.0 ] ], [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] ] ] ]\n*/\nfunction nullary4d( fcn, arrays, views, shape, stridesX, isRowMajor, strategyX, opts ) { // eslint-disable-line max-len\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar sv;\n\tvar iv;\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#, dv#, 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\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = shape[ 3 ];\n\t\tS1 = shape[ 2 ];\n\t\tS2 = shape[ 1 ];\n\t\tS3 = shape[ 0 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[3]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[2] - ( S0*stridesX[3] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[1] - ( S1*stridesX[2] )\n\t\t];\n\t\tdv3 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S2*stridesX[1] )\n\t\t];\n\t\tfor ( i = 1; i < arrays.length; i++ ) {\n\t\t\tsv = arrays[ i ].strides;\n\t\t\tdv0.push( sv[3] );\n\t\t\tdv1.push( sv[2] - ( S0*sv[3] ) );\n\t\t\tdv2.push( sv[1] - ( S1*sv[2] ) );\n\t\t\tdv3.push( sv[0] - ( S2*sv[1]) );\n\t\t}\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = shape[ 0 ];\n\t\tS1 = shape[ 1 ];\n\t\tS2 = shape[ 2 ];\n\t\tS3 = shape[ 3 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] )\n\t\t];\n\t\tdv3 = [ // offset increment for outermost loop\n\t\t\tstridesX[3] - ( S2*stridesX[2] )\n\t\t];\n\t\tfor ( i = 1; i < arrays.length; i++ ) {\n\t\t\tsv = arrays[ i ].strides;\n\t\t\tdv0.push( sv[0] );\n\t\t\tdv1.push( sv[1] - ( S0*sv[0] ) );\n\t\t\tdv2.push( sv[2] - ( S1*sv[1] ) );\n\t\t\tdv3.push( sv[3] - ( S2*sv[2] ) );\n\t\t}\n\t}\n\t// Resolve a list of pointers to the first indexed elements in the respective ndarrays:\n\tiv = offsets( arrays );\n\n\t// Shallow copy the list of views to an internal array so that we can update with reshaped views without impacting the original list of views:\n\tv = copyIndexed( views );\n\n\t// Iterate over the loop 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\tsetViewOffsets( views, iv );\n\t\t\t\t\tv[ 0 ] = strategyX.input( views[ 0 ] );\n\t\t\t\t\tfcn( v, opts );\n\t\t\t\t\tstrategyX.output( views[ 0 ] );\n\t\t\t\t\tincrementOffsets( iv, dv0 );\n\t\t\t\t}\n\t\t\t\tincrementOffsets( iv, dv1 );\n\t\t\t}\n\t\t\tincrementOffsets( iv, dv2 );\n\t\t}\n\t\tincrementOffsets( iv, dv3 );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary4d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2025 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See 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' );\nvar incrementOffsets = require( './increment_offsets.js' );\nvar setViewOffsets = require( './set_view_offsets.js' );\nvar offsets = require( './offsets.js' );\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array<Object>} arrays - ndarrays\n* @param {Array<Object>} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Object} strategyX - strategy for marshaling data to and from an ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* var ndarray2array = require( '@stdlib/ndarray-base-to-array' );\n* var getStride = require( '@stdlib/ndarray-base-stride' );\n* var getOffset = require( '@stdlib/ndarray-base-offset' );\n* var getData = require( '@stdlib/ndarray-base-data-buffer' );\n* var numelDimension = require( '@stdlib/ndarray-base-numel-dimension' );\n* var ndarraylike2scalar = require( '@stdlib/ndarray-base-ndarraylike2scalar' );\n* var gsorthp = require( '@stdlib/blas-ext-base-gsorthp' ).ndarray;\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var o = arrays[ 1 ];\n* return gsorthp( numelDimension( x, 0 ), ndarraylike2scalar( o ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = [ 12.0, 11.0, 10.0, 9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0 ];\n*\n* // Define an array shape:\n* var xsh = [ 1, 1, 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an ndarray-like object for the sort order:\n* var sortOrder = {\n* 'dtype': 'generic',\n* 'data': [ 1.0 ],\n* 'shape': [ 1, 1, 1, 1, 3 ],\n* 'strides': [ 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Initialize ndarray-like objects representing sub-array views:\n* var views = [\n* {\n* 'dtype': x.dtype,\n* 'data': x.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': x.offset,\n* 'order': x.order\n* },\n* {\n* 'dtype': sortOrder.dtype,\n* 'data': sortOrder.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sortOrder.offset,\n* 'order': sortOrder.order\n* }\n* ];\n*\n* // Define an input strategy:\n* function inputStrategy( x ) {\n* return {\n* 'dtype': x.dtype,\n* 'data': x.data,\n* 'shape': [ 4 ],\n* 'strides': [ 1 ],\n* 'offset': x.offset,\n* 'order': x.order\n* };\n* }\n*\n* // Define an output strategy:\n* function outputStrategy( x ) {\n* return x;\n* }\n*\n* var strategy = {\n* 'input': inputStrategy,\n* 'output': outputStrategy\n* }\n*\n* // Apply strided function:\n* nullary5d( wrapper, [ x, sortOrder ], views, [ 1, 1, 1, 1, 3 ], [ 12, 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( x.data, x.shape, x.strides, x.offset, x.order );\n* // returns [ [ [ [ [ [ [ 9.0, 10.0 ], [ 11.0, 12.0 ] ], [ [ 5.0, 6.0 ], [ 7.0, 8.0 ] ], [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] ] ] ] ]\n*/\nfunction nullary5d( fcn, arrays, views, shape, stridesX, isRowMajor, strategyX, opts ) { // eslint-disable-line max-len\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar sv;\n\tvar iv;\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#, dv#, 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\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = shape[ 4 ];\n\t\tS1 = shape[ 3 ];\n\t\tS2 = shape[ 2 ];\n\t\tS3 = shape[ 1 ];\n\t\tS4 = shape[ 0 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[4]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[3] - ( S0*stridesX[4] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[3] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[1] - ( S2*stridesX[2] )\n\t\t];\n\t\tdv4 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S3*stridesX[1] )\n\t\t];\n\t\tfor ( i = 1; i < arrays.length; i++ ) {\n\t\t\tsv = arrays[ i ].strides;\n\t\t\tdv0.push( sv[4] );\n\t\t\tdv1.push( sv[3] - ( S0*sv[4] ) );\n\t\t\tdv2.push( sv[2] - ( S1*sv[3] ) );\n\t\t\tdv3.push( sv[1] - ( S2*sv[2] ) );\n\t\t\tdv4.push( sv[0] - ( S3*sv[1] ) );\n\t\t}\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = shape[ 0 ];\n\t\tS1 = shape[ 1 ];\n\t\tS2 = shape[ 2 ];\n\t\tS3 = shape[ 3 ];\n\t\tS4 = shape[ 4 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[2] )\n\t\t];\n\t\tdv4 = [ // offset increment for outermost loop\n\t\t\tstridesX[4] - ( S3*stridesX[3] )\n\t\t];\n\t\tfor ( i = 1; i < arrays.length; i++ ) {\n\t\t\tsv = arrays[ i ].strides;\n\t\t\tdv0.push( sv[0] );\n\t\t\tdv1.push( sv[1] - ( S0*sv[0] ) );\n\t\t\tdv2.push( sv[2] - ( S1*sv[1] ) );\n\t\t\tdv3.push( sv[3] - ( S2*sv[2] ) );\n\t\t\tdv4.push( sv[4] - ( S3*sv[3] ) );\n\t\t}\n\t}\n\t// Resolve a list of pointers to the first indexed elements in the respective ndarrays:\n\tiv = offsets( arrays );\n\n\t// Shallow copy the list of views to an internal array so that we can update with reshaped views without impacting the original list of views:\n\tv = copyIndexed( views );\n\n\t// Iterate over the loop 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\tsetViewOffsets( views, iv );\n\t\t\t\t\t\tv[ 0 ] = strategyX.input( views[ 0 ] );\n\t\t\t\t\t\tfcn( v, opts );\n\t\t\t\t\t\tstrategyX.output( views[ 1 ] );\n\t\t\t\t\t\tincrementOffsets( iv, dv0 );\n\t\t\t\t\t}\n\t\t\t\t\tincrementOffsets( iv, dv1 );\n\t\t\t\t}\n\t\t\t\tincrementOffsets( iv, dv2 );\n\t\t\t}\n\t\t\tincrementOffsets( iv, dv3 );\n\t\t}\n\t\tincrementOffsets( iv, dv4 );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary5d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2025 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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 copyIndexed = require( '@stdlib/array-base-copy-indexed' );\nvar incrementOffsets = require( './increment_offsets.js' );\nvar setViewOffsets = require( './set_view_offsets.js' );\nvar offsets = require( './offsets.js' );\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array<Object>} arrays - ndarrays\n* @param {Array<Object>} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Object} strategyX - strategy for marshaling data to and from an ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* var ndarray2array = require( '@stdlib/ndarray-base-to-array' );\n* var getStride = require( '@stdlib/ndarray-base-stride' );\n* var getOffset = require( '@stdlib/ndarray-base-offset' );\n* var getData = require( '@stdlib/ndarray-base-data-buffer' );\n* var numelDimension = require( '@stdlib/ndarray-base-numel-dimension' );\n* var ndarraylike2scalar = require( '@stdlib/ndarray-base-ndarraylike2scalar' );\n* var gsorthp = require( '@stdlib/blas-ext-base-gsorthp' ).ndarray;\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var o = arrays[ 1 ];\n* return gsorthp( numelDimension( x, 0 ), ndarraylike2scalar( o ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = [ 12.0, 11.0, 10.0, 9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0 ];\n*\n* // Define an array shape:\n* var xsh = [ 1, 1, 1, 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an ndarray-like object for the sort order:\n* var sortOrder = {\n* 'dtype': 'generic',\n* 'data': [ 1.0 ],\n* 'shape': [ 1, 1, 1, 1, 1, 3 ],\n* 'strides': [ 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Initialize ndarray-like objects representing sub-array views:\n* var views = [\n* {\n* 'dtype': x.dtype,\n* 'data': x.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': x.offset,\n* 'order': x.order\n* },\n* {\n* 'dtype': sortOrder.dtype,\n* 'data': sortOrder.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sortOrder.offset,\n* 'order': sortOrder.order\n* }\n* ];\n*\n* // Define an input strategy:\n* function inputStrategy( x ) {\n* return {\n* 'dtype': x.dtype,\n* 'data': x.data,\n* 'shape': [ 4 ],\n* 'strides': [ 1 ],\n* 'offset': x.offset,\n* 'order': x.order\n* };\n* }\n*\n* // Define an output strategy:\n* function outputStrategy( x ) {\n* return x;\n* }\n*\n* var strategy = {\n* 'input': inputStrategy,\n* 'output': outputStrategy\n* }\n*\n* // Apply strided function:\n* nullary6d( wrapper, [ x, sortOrder ], views, [ 1, 1, 1, 1, 1, 3 ], [ 12, 12, 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( x.data, x.shape, x.strides, x.offset, x.order );\n* // returns [ [ [ [ [ [ [ [ 9.0, 10.0 ], [ 11.0, 12.0 ] ], [ [ 5.0, 6.0 ], [ 7.0, 8.0 ] ], [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] ] ] ] ] ]\n*/\nfunction nullary6d( fcn, arrays, views, shape, stridesX, isRowMajor, strategyX, opts ) { // eslint-disable-line max-len\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar sv;\n\tvar iv;\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#, dv#, 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\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = shape[ 5 ];\n\t\tS1 = shape[ 4 ];\n\t\tS2 = shape[ 3 ];\n\t\tS3 = shape[ 2 ];\n\t\tS4 = shape[ 1 ];\n\t\tS5 = shape[ 0 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[5]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[4] - ( S0*stridesX[5] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[3] - ( S1*stridesX[4] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[2] - ( S2*stridesX[3] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[1] - ( S3*stridesX[2] )\n\t\t];\n\t\tdv5 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S4*stridesX[1] )\n\t\t];\n\t\tfor ( i = 1; i < arrays.length; i++ ) {\n\t\t\tsv = arrays[ i ].strides;\n\t\t\tdv0.push( sv[5] );\n\t\t\tdv1.push( sv[4] - ( S0*sv[5] ) );\n\t\t\tdv2.push( sv[3] - ( S1*sv[4] ) );\n\t\t\tdv3.push( sv[2] - ( S2*sv[3] ) );\n\t\t\tdv4.push( sv[1] - ( S3*sv[2] ) );\n\t\t\tdv5.push( sv[0] - ( S4*sv[1] ) );\n\t\t}\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = shape[ 0 ];\n\t\tS1 = shape[ 1 ];\n\t\tS2 = shape[ 2 ];\n\t\tS3 = shape[ 3 ];\n\t\tS4 = shape[ 4 ];\n\t\tS5 = shape[ 5 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[2] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[4] - ( S3*stridesX[3] )\n\t\t];\n\t\tdv5 = [ // offset increment for outermost loop\n\t\t\tstridesX[5] - ( S4*stridesX[4] )\n\t\t];\n\t\tfor ( i = 1; i < arrays.length; i++ ) {\n\t\t\tsv = arrays[ i ].strides;\n\t\t\tdv0.push( sv[0] );\n\t\t\tdv1.push( sv[1] - ( S0*sv[0] ) );\n\t\t\tdv2.push( sv[2] - ( S1*sv[1] ) );\n\t\t\tdv3.push( sv[3] - ( S2*sv[2] ) );\n\t\t\tdv4.push( sv[4] - ( S3*sv[3] ) );\n\t\t\tdv5.push( sv[5] - ( S4*sv[4] ) );\n\t\t}\n\t}\n\t// Resolve a list of pointers to the first indexed elements in the respective ndarrays:\n\tiv = offsets( arrays );\n\n\t// Shallow copy the list of views to an internal array so that we can update with reshaped views without impacting the original list of views:\n\tv = copyIndexed( views );\n\n\t// Iterate over the loop 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\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\tv[ 0 ] = strategyX.input( views[ 0 ] );\n\t\t\t\t\t\t\tfcn( v, opts );\n\t\t\t\t\t\t\tstrategyX.output( views[ 0 ] );\n\t\t\t\t\t\t\tincrementOffsets( iv, dv0 );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tincrementOffsets( iv, dv1 );\n\t\t\t\t\t}\n\t\t\t\t\tincrementOffsets( iv, dv2 );\n\t\t\t\t}\n\t\t\t\tincrementOffsets( iv, dv3 );\n\t\t\t}\n\t\t\tincrementOffsets( iv, dv4 );\n\t\t}\n\t\tincrementOffsets( iv, dv5 );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary6d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2025 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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 copyIndexed = require( '@stdlib/array-base-copy-indexed' );\nvar incrementOffsets = require( './increment_offsets.js' );\nvar setViewOffsets = require( './set_view_offsets.js' );\nvar offsets = require( './offsets.js' );\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array<Object>} arrays - ndarrays\n* @param {Array<Object>} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Object} strategyX - strategy for marshaling data to and from an ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* var ndarray2array = require( '@stdlib/ndarray-base-to-array' );\n* var getStride = require( '@stdlib/ndarray-base-stride' );\n* var getOffset = require( '@stdlib/ndarray-base-offset' );\n* var getData = require( '@stdlib/ndarray-base-data-buffer' );\n* var numelDimension = require( '@stdlib/ndarray-base-numel-dimension' );\n* var ndarraylike2scalar = require( '@stdlib/ndarray-base-ndarraylike2scalar' );\n* var gsorthp = require( '@stdlib/blas-ext-base-gsorthp' ).ndarray;\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var o = arrays[ 1 ];\n* return gsorthp( numelDimension( x, 0 ), ndarraylike2scalar( o ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = [ 12.0, 11.0, 10.0, 9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0 ];\n*\n* // Define an array shape:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an ndarray-like object for the sort order:\n* var sortOrder = {\n* 'dtype': 'generic',\n* 'data': [ 1.0 ],\n* 'shape': [ 1, 1, 1, 1, 1, 1, 3 ],\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Initialize ndarray-like objects representing sub-array views:\n* var views = [\n* {\n* 'dtype': x.dtype,\n* 'data': x.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': x.offset,\n* 'order': x.order\n* },\n* {\n* 'dtype': sortOrder.dtype,\n* 'data': sortOrder.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sortOrder.offset,\n* 'order': sortOrder.order\n* }\n* ];\n*\n* // Define an input strategy:\n* function inputStrategy( x ) {\n* return {\n* 'dtype': x.dtype,\n* 'data': x.data,\n* 'shape': [ 4 ],\n* 'strides': [ 1 ],\n* 'offset': x.offset,\n* 'order': x.order\n* };\n* }\n*\n* // Define an output strategy:\n* function outputStrategy( x ) {\n* return x;\n* }\n*\n* var strategy = {\n* 'input': inputStrategy,\n* 'output': outputStrategy\n* }\n*\n* // Apply strided function:\n* nullary7d( wrapper, [ x, sortOrder ], views, [ 1, 1, 1, 1, 1, 1, 3 ], [ 12, 12, 12, 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( x.data, x.shape, x.strides, x.offset, x.order );\n* // returns [ [ [ [ [ [ [ [ [ 9.0, 10.0 ], [ 11.0, 12.0 ] ], [ [ 5.0, 6.0 ], [ 7.0, 8.0 ] ], [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] ] ] ] ] ] ]\n*/\nfunction nullary7d( fcn, arrays, views, shape, stridesX, isRowMajor, strategyX, opts ) { // eslint-disable-line max-len\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\n\tvar dv6;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sv;\n\tvar iv;\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#, dv#, 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\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = shape[ 6 ];\n\t\tS1 = shape[ 5 ];\n\t\tS2 = shape[ 4 ];\n\t\tS3 = shape[ 3 ];\n\t\tS4 = shape[ 2 ];\n\t\tS5 = shape[ 1 ];\n\t\tS6 = shape[ 0 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[6]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[5] - ( S0*stridesX[6] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[4] - ( S1*stridesX[5] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[4] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[2] - ( S3*stridesX[3] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[1] - ( S4*stridesX[2] )\n\t\t];\n\t\tdv6 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S5*stridesX[1] )\n\t\t];\n\t\tfor ( i = 1; i < arrays.length; i++ ) {\n\t\t\tsv = arrays[ i ].strides;\n\t\t\tdv0.push( sv[6] );\n\t\t\tdv1.push( sv[5] - ( S0*sv[6] ) );\n\t\t\tdv2.push( sv[4] - ( S1*sv[5] ) );\n\t\t\tdv3.push( sv[3] - ( S2*sv[4] ) );\n\t\t\tdv4.push( sv[2] - ( S3*sv[3] ) );\n\t\t\tdv5.push( sv[1] - ( S4*sv[2] ) );\n\t\t\tdv6.push( sv[0] - ( S5*sv[1] ) );\n\t\t}\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = shape[ 0 ];\n\t\tS1 = shape[ 1 ];\n\t\tS2 = shape[ 2 ];\n\t\tS3 = shape[ 3 ];\n\t\tS4 = shape[ 4 ];\n\t\tS5 = shape[ 5 ];\n\t\tS6 = shape[ 6 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[2] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[4] - ( S3*stridesX[3] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[5] - ( S4*stridesX[4] )\n\t\t];\n\t\tdv6 = [ // offset increment for outermost loop\n\t\t\tstridesX[6] - ( S5*stridesX[5] )\n\t\t];\n\t\tfor ( i = 1; i < arrays.length; i++ ) {\n\t\t\tsv = arrays[ i ].strides;\n\t\t\tdv0.push( sv[0] );\n\t\t\tdv1.push( sv[1] - ( S0*sv[0] ) );\n\t\t\tdv2.push( sv[2] - ( S1*sv[1] ) );\n\t\t\tdv3.push( sv[3] - ( S2*sv[2] ) );\n\t\t\tdv4.push( sv[4] - ( S3*sv[3] ) );\n\t\t\tdv5.push( sv[5] - ( S4*sv[4] ) );\n\t\t\tdv6.push( sv[6] - ( S5*sv[5] ) );\n\t\t}\n\t}\n\t// Resolve a list of pointers to the first indexed elements in the respective ndarrays:\n\tiv = offsets( arrays );\n\n\t// Shallow copy the list of views to an internal array so that we can update with reshaped views without impacting the original list of views:\n\tv = copyIndexed( views );\n\n\t// Iterate over the loop 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\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\tv[ 0 ] = strategyX.input( views[ 0 ] );\n\t\t\t\t\t\t\t\tfcn( v, opts );\n\t\t\t\t\t\t\t\tstrategyX.output( views[ 0 ] );\n\t\t\t\t\t\t\t\tincrementOffsets( iv, dv0 );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tincrementOffsets( iv, dv1 );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tincrementOffsets( iv, dv2 );\n\t\t\t\t\t}\n\t\t\t\t\tincrementOffsets( iv, dv3 );\n\t\t\t\t}\n\t\t\t\tincrementOffsets( iv, dv4 );\n\t\t\t}\n\t\t\tincrementOffsets( iv, dv5 );\n\t\t}\n\t\tincrementOffsets( iv, dv6 );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary7d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2025 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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 copyIndexed = require( '@stdlib/array-base-copy-indexed' );\nvar incrementOffsets = require( './increment_offsets.js' );\nvar setViewOffsets = require( './set_view_offsets.js' );\nvar offsets = require( './offsets.js' );\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array<Object>} arrays - ndarrays\n* @param {Array<Object>} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Object} strategyX - strategy for marshaling data to and from an ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* var ndarray2array = require( '@stdlib/ndarray-base-to-array' );\n* var getStride = require( '@stdlib/ndarray-base-stride' );\n* var getOffset = require( '@stdlib/ndarray-base-offset' );\n* var getData = require( '@stdlib/ndarray-base-data-buffer' );\n* var numelDimension = require( '@stdlib/ndarray-base-numel-dimension' );\n* var ndarraylike2scalar = require( '@stdlib/ndarray-base-ndarraylike2scalar' );\n* var gsorthp = require( '@stdlib/blas-ext-base-gsorthp' ).ndarray;\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var o = arrays[ 1 ];\n* return gsorthp( numelDimension( x, 0 ), ndarraylike2scalar( o ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = [ 12.0, 11.0, 10.0, 9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0 ];\n*\n* // Define an array shape:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an ndarray-like object for the sort order:\n* var sortOrder = {\n* 'dtype': 'generic',\n* 'data': [ 1.0 ],\n* 'shape': [ 1, 1, 1, 1, 1, 1, 1, 3 ],\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Initialize ndarray-like objects representing sub-array views:\n* var views = [\n* {\n* 'dtype': x.dtype,\n* 'data': x.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': x.offset,\n* 'order': x.order\n* },\n* {\n* 'dtype': sortOrder.dtype,\n* 'data': sortOrder.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sortOrder.offset,\n* 'order': sortOrder.order\n* }\n* ];\n*\n* // Define an input strategy:\n* function inputStrategy( x ) {\n* return {\n* 'dtype': x.dtype,\n* 'data': x.data,\n* 'shape': [ 4 ],\n* 'strides': [ 1 ],\n* 'offset': x.offset,\n* 'order': x.order\n* };\n* }\n*\n* // Define an output strategy:\n* function outputStrategy( x ) {\n* return x;\n* }\n*\n* var strategy = {\n* 'input': inputStrategy,\n* 'output': outputStrategy\n* }\n*\n* // Apply strided function:\n* nullary8d( wrapper, [ x, sortOrder ], views, [ 1, 1, 1, 1, 1, 1, 1, 3 ], [ 12, 12, 12, 12, 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( x.data, x.shape, x.strides, x.offset, x.order );\n* // returns [ [ [ [ [ [ [ [ [ [ 9.0, 10.0 ], [ 11.0, 12.0 ] ], [ [ 5.0, 6.0 ], [ 7.0, 8.0 ] ], [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] ] ] ] ] ] ] ]\n*/\nfunction nullary8d( fcn, arrays, views, shape, stridesX, isRowMajor, strategyX, opts ) { // eslint-disable-line max-len, max-statements\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\n\tvar dv6;\n\tvar dv7;\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 sv;\n\tvar iv;\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#, dv#, 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\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = shape[ 7 ];\n\t\tS1 = shape[ 6 ];\n\t\tS2 = shape[ 5 ];\n\t\tS3 = shape[ 4 ];\n\t\tS4 = shape[ 3 ];\n\t\tS5 = shape[ 2 ];\n\t\tS6 = shape[ 1 ];\n\t\tS7 = shape[ 0 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[7]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[6] - ( S0*stridesX[7] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[5] - ( S1*stridesX[6] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[4] - ( S2*stridesX[5] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[3] - ( S3*stridesX[4] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[2] - ( S4*stridesX[3] )\n\t\t];\n\t\tdv6 = [\n\t\t\tstridesX[1] - ( S5*stridesX[2] )\n\t\t];\n\t\tdv7 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S6*stridesX[1] )\n\t\t];\n\t\tfor ( i = 1; i < arrays.length; i++ ) {\n\t\t\tsv = arrays[ i ].strides;\n\t\t\tdv0.push( sv[7] );\n\t\t\tdv1.push( sv[6] - ( S0*sv[7] ) );\n\t\t\tdv2.push( sv[5] - ( S1*sv[6] ) );\n\t\t\tdv3.push( sv[4] - ( S2*sv[5] ) );\n\t\t\tdv4.push( sv[3] - ( S3*sv[4] ) );\n\t\t\tdv5.push( sv[2] - ( S4*sv[3] ) );\n\t\t\tdv6.push( sv[1] - ( S5*sv[2] ) );\n\t\t\tdv7.push( sv[0] - ( S6*sv[1] ) );\n\t\t}\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = shape[ 0 ];\n\t\tS1 = shape[ 1 ];\n\t\tS2 = shape[ 2 ];\n\t\tS3 = shape[ 3 ];\n\t\tS4 = shape[ 4 ];\n\t\tS5 = shape[ 5 ];\n\t\tS6 = shape[ 6 ];\n\t\tS7 = shape[ 7 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[2] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[4] - ( S3*stridesX[3] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[5] - ( S4*stridesX[4] )\n\t\t];\n\t\tdv6 = [\n\t\t\tstridesX[6] - ( S5*stridesX[5] )\n\t\t];\n\t\tdv7 = [ // offset increment for outermost loop\n\t\t\tstridesX[7] - ( S6*stridesX[6] )\n\t\t];\n\t\tfor ( i = 1; i < arrays.length; i++ ) {\n\t\t\tsv = arrays[ i ].strides;\n\t\t\tdv0.push( sv[0] );\n\t\t\tdv1.push( sv[1] - ( S0*sv[0] ) );\n\t\t\tdv2.push( sv[2] - ( S1*sv[1] ) );\n\t\t\tdv3.push( sv[3] - ( S2*sv[2] ) );\n\t\t\tdv4.push( sv[4] - ( S3*sv[3] ) );\n\t\t\tdv5.push( sv[5] - ( S4*sv[4] ) );\n\t\t\tdv6.push( sv[6] - ( S5*sv[5] ) );\n\t\t\tdv7.push( sv[7] - ( S6*sv[6] ) );\n\t\t}\n\t}\n\t// Resolve a list of pointers to the first indexed elements in the respective ndarrays:\n\tiv = offsets( arrays );\n\n\t// Shallow copy the list of views to an internal array so that we can update with reshaped views without impacting the original list of views:\n\tv = copyIndexed( views );\n\n\t// Iterate over the loop 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\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\tv[ 0 ] = strategyX.input( views[ 0 ] );\n\t\t\t\t\t\t\t\t\tfcn( v, opts );\n\t\t\t\t\t\t\t\t\tstrategyX.output( views[ 0 ] );\n\t\t\t\t\t\t\t\t\tincrementOffsets( iv, dv0 );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tincrementOffsets( iv, dv1 );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tincrementOffsets( iv, dv2 );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tincrementOffsets( iv, dv3 );\n\t\t\t\t\t}\n\t\t\t\t\tincrementOffsets( iv, dv4 );\n\t\t\t\t}\n\t\t\t\tincrementOffsets( iv, dv5 );\n\t\t\t}\n\t\t\tincrementOffsets( iv, dv6 );\n\t\t}\n\t\tincrementOffsets( iv, dv7 );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary8d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2025 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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 copyIndexed = require( '@stdlib/array-base-copy-indexed' );\nvar incrementOffsets = require( './increment_offsets.js' );\nvar setViewOffsets = require( './set_view_offsets.js' );\nvar offsets = require( './offsets.js' );\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array<Object>} arrays - ndarrays\n* @param {Array<Object>} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Object} strategyX - strategy for marshaling data to and from an ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* var ndarray2array = require( '@stdlib/ndarray-base-to-array' );\n* var getStride = require( '@stdlib/ndarray-base-stride' );\n* var getOffset = require( '@stdlib/ndarray-base-offset' );\n* var getData = require( '@stdlib/ndarray-base-data-buffer' );\n* var numelDimension = require( '@stdlib/ndarray-base-numel-dimension' );\n* var ndarraylike2scalar = require( '@stdlib/ndarray-base-ndarraylike2scalar' );\n* var gsorthp = require( '@stdlib/blas-ext-base-gsorthp' ).ndarray;\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var o = arrays[ 1 ];\n* return gsorthp( numelDimension( x, 0 ), ndarraylike2scalar( o ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = [ 12.0, 11.0, 10.0, 9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0 ];\n*\n* // Define an array shape:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an ndarray-like object for the sort order:\n* var sortOrder = {\n* 'dtype': 'generic',\n* 'data': [ 1.0 ],\n* 'shape': [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ],\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Initialize ndarray-like objects representing sub-array views:\n* var views = [\n* {\n* 'dtype': x.dtype,\n* 'data': x.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': x.offset,\n* 'order': x.order\n* },\n* {\n* 'dtype': sortOrder.dtype,\n* 'data': sortOrder.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sortOrder.offset,\n* 'order': sortOrder.order\n* }\n* ];\n*\n* // Define an input strategy:\n* function inputStrategy( x ) {\n* return {\n* 'dtype': x.dtype,\n* 'data': x.data,\n* 'shape': [ 4 ],\n* 'strides': [ 1 ],\n* 'offset': x.offset,\n* 'order': x.order\n* };\n* }\n*\n* // Define an output strategy:\n* function outputStrategy( x ) {\n* return x;\n* }\n*\n* var strategy = {\n* 'input': inputStrategy,\n* 'output': outputStrategy\n* }\n*\n* // Apply strided function:\n* nullary9d( wrapper, [ x, sortOrder ], views, [ 1, 1, 1, 1, 1, 1, 1, 1, 3 ], [ 12, 12, 12, 12, 12, 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( x.data, x.shape, x.strides, x.offset, x.order );\n* // returns [ [ [ [ [ [ [ [ [ [ [ 9.0, 10.0 ], [ 11.0, 12.0 ] ], [ [ 5.0, 6.0 ], [ 7.0, 8.0 ] ], [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] ] ] ] ] ] ] ] ]\n*/\nfunction nullary9d( fcn, arrays, views, shape, stridesX, isRowMajor, strategyX, opts ) { // eslint-disable-line max-statements\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\n\tvar dv6;\n\tvar dv7;\n\tvar dv8;\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 sv;\n\tvar iv;\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#, dv#, 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\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = shape[ 8 ];\n\t\tS1 = shape[ 7 ];\n\t\tS2 = shape[ 6 ];\n\t\tS3 = shape[ 5 ];\n\t\tS4 = shape[ 4 ];\n\t\tS5 = shape[ 3 ];\n\t\tS6 = shape[ 2 ];\n\t\tS7 = shape[ 1 ];\n\t\tS8 = shape[ 0 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[8]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[7] - ( S0*stridesX[8] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[6] - ( S1*stridesX[7] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[5] - ( S2*stridesX[6] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[4] - ( S3*stridesX[5] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[3] - ( S4*stridesX[4] )\n\t\t];\n\t\tdv6 = [\n\t\t\tstridesX[2] - ( S5*stridesX[3] )\n\t\t];\n\t\tdv7 = [\n\t\t\tstridesX[1] - ( S6*stridesX[2] )\n\t\t];\n\t\tdv8 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S7*stridesX[1] )\n\t\t];\n\t\tfor ( i = 1; i < arrays.length; i++ ) {\n\t\t\tsv = arrays[ i ].strides;\n\t\t\tdv0.push( sv[8] );\n\t\t\tdv1.push( sv[7] - ( S0*sv[8] ) );\n\t\t\tdv2.push( sv[6] - ( S1*sv[7] ) );\n\t\t\tdv3.push( sv[5] - ( S2*sv[6] ) );\n\t\t\tdv4.push( sv[4] - ( S3*sv[5] ) );\n\t\t\tdv5.push( sv[3] - ( S4*sv[4] ) );\n\t\t\tdv6.push( sv[2] - ( S5*sv[3] ) );\n\t\t\tdv7.push( sv[1] - ( S6*sv[2] ) );\n\t\t\tdv8.push( sv[0] - ( S7*sv[1] ) );\n\t\t}\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = shape[ 0 ];\n\t\tS1 = shape[ 1 ];\n\t\tS2 = shape[ 2 ];\n\t\tS3 = shape[ 3 ];\n\t\tS4 = shape[ 4 ];\n\t\tS5 = shape[ 5 ];\n\t\tS6 = shape[ 6 ];\n\t\tS7 = shape[ 7 ];\n\t\tS8 = shape[ 8 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[2] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[4] - ( S3*stridesX[3] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[5] - ( S4*stridesX[4] )\n\t\t];\n\t\tdv6 = [\n\t\t\tstridesX[6] - ( S5*stridesX[5] )\n\t\t];\n\t\tdv7 = [\n\t\t\tstridesX[7] - ( S6*stridesX[6] )\n\t\t];\n\t\tdv8 = [ // offset increment for outermost loop\n\t\t\tstridesX[8] - ( S7*stridesX[7] )\n\t\t];\n\t\tfor ( i = 1; i < arrays.length; i++ ) {\n\t\t\tsv = arrays[ i ].strides;\n\t\t\tdv0.push( sv[0] );\n\t\t\tdv1.push( sv[1] - ( S0*sv[0] ) );\n\t\t\tdv2.push( sv[2] - ( S1*sv[1] ) );\n\t\t\tdv3.push( sv[3] - ( S2*sv[2] ) );\n\t\t\tdv4.push( sv[4] - ( S3*sv[3] ) );\n\t\t\tdv5.push( sv[5] - ( S4*sv[4] ) );\n\t\t\tdv6.push( sv[6] - ( S5*sv[5] ) );\n\t\t\tdv7.push( sv[7] - ( S6*sv[6] ) );\n\t\t\tdv8.push( sv[8] - ( S7*sv[7] ) );\n\t\t}\n\t}\n\t// Resolve a list of pointers to the first indexed elements in the respective ndarrays:\n\tiv = offsets( arrays );\n\n\t// Shallow copy the list of views to an internal array so that we can update with reshaped views without impacting the original list of views:\n\tv = copyIndexed( views );\n\n\t// Iterate over the loop 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\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategyX.input( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\tfcn( v, opts );\n\t\t\t\t\t\t\t\t\t\tstrategyX.output( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\tincrementOffsets( iv, dv0 );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tincrementOffsets( iv, dv1 );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tincrementOffsets( iv, dv2 );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tincrementOffsets( iv, dv3 );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tincrementOffsets( iv, dv4 );\n\t\t\t\t\t}\n\t\t\t\t\tincrementOffsets( iv, dv5 );\n\t\t\t\t}\n\t\t\t\tincrementOffsets( iv, dv6 );\n\t\t\t}\n\t\t\tincrementOffsets( iv, dv7 );\n\t\t}\n\t\tincrementOffsets( iv, dv8 );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary9d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2025 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY 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 copyIndexed = require( '@stdlib/array-base-copy-indexed' );\nvar incrementOffsets = require( './increment_offsets.js' );\nvar setViewOffsets = require( './set_view_offsets.js' );\nvar offsets = require( './offsets.js' );\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array<Object>} arrays - ndarrays\n* @param {Array<Object>} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the ndarray\n* @param {boolean} isRowMajor - boolean indicating if provided arrays are in row-major order\n* @param {Object} strategyX - strategy for marshaling data to and from an ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* var ndarray2array = require( '@stdlib/ndarray-base-to-array' );\n* var getStride = require( '@stdlib/ndarray-base-stride' );\n* var getOffset = require( '@stdlib/ndarray-base-offset' );\n* var getData = require( '@stdlib/ndarray-base-data-buffer' );\n* var numelDimension = require( '@stdlib/ndarray-base-numel-dimension' );\n* var ndarraylike2scalar = require( '@stdlib/ndarray-base-ndarraylike2scalar' );\n* var gsorthp = require( '@stdlib/blas-ext-base-gsorthp' ).ndarray;\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var o = arrays[ 1 ];\n* return gsorthp( numelDimension( x, 0 ), ndarraylike2scalar( o ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = [ 12.0, 11.0, 10.0, 9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0 ];\n*\n* // Define an array shape:\n* var xsh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an ndarray-like object for the sort order:\n* var sortOrder = {\n* 'dtype': 'generic',\n* 'data': [ 1.0 ],\n* 'shape': [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ],\n* 'strides': [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Initialize ndarray-like objects representing sub-array views:\n* var views = [\n* {\n* 'dtype': x.dtype,\n* 'data': x.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': x.offset,\n* 'order': x.order\n* },\n* {\n* 'dtype': sortOrder.dtype,\n* 'data': sortOrder.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sortOrder.offset,\n* 'order': sortOrder.order\n* }\n* ];\n*\n* // Define an input strategy:\n* function inputStrategy( x ) {\n* return {\n* 'dtype': x.dtype,\n* 'data': x.data,\n* 'shape': [ 4 ],\n* 'strides': [ 1 ],\n* 'offset': x.offset,\n* 'order': x.order\n* };\n* }\n*\n* // Define an output strategy:\n* function outputStrategy( x ) {\n* return x;\n* }\n*\n* var strategy = {\n* 'input': inputStrategy,\n* 'output': outputStrategy\n* }\n*\n* // Apply strided function:\n* nullary10d( wrapper, [ x, sortOrder ], views, [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 ], [ 12, 12, 12, 12, 12, 12, 12, 12, 12, 4 ], true, strategy, {} );\n*\n* var arr = ndarray2array( x.data, x.shape, x.strides, x.offset, x.order );\n* // returns [ [ [ [ [ [ [ [ [ [ [ [ 9.0, 10.0 ], [ 11.0, 12.0 ] ], [ [ 5.0, 6.0 ], [ 7.0, 8.0 ] ], [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] ] ] ] ] ] ] ] ] ]\n*/\nfunction nullary10d( fcn, arrays, views, shape, stridesX, isRowMajor, strategyX, opts ) { // eslint-disable-line max-statements\n\tvar dv0;\n\tvar dv1;\n\tvar dv2;\n\tvar dv3;\n\tvar dv4;\n\tvar dv5;\n\tvar dv6;\n\tvar dv7;\n\tvar dv8;\n\tvar dv9;\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 sv;\n\tvar iv;\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#, dv#, 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\tif ( isRowMajor ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest changing indices...\n\t\tS0 = shape[ 9 ];\n\t\tS1 = shape[ 8 ];\n\t\tS2 = shape[ 7 ];\n\t\tS3 = shape[ 6 ];\n\t\tS4 = shape[ 5 ];\n\t\tS5 = shape[ 4 ];\n\t\tS6 = shape[ 3 ];\n\t\tS7 = shape[ 2 ];\n\t\tS8 = shape[ 1 ];\n\t\tS9 = shape[ 0 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[9]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[8] - ( S0*stridesX[9] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[7] - ( S1*stridesX[8] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[6] - ( S2*stridesX[7] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[5] - ( S3*stridesX[6] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[4] - ( S4*stridesX[5] )\n\t\t];\n\t\tdv6 = [\n\t\t\tstridesX[3] - ( S5*stridesX[4] )\n\t\t];\n\t\tdv7 = [\n\t\t\tstridesX[2] - ( S6*stridesX[3] )\n\t\t];\n\t\tdv8 = [\n\t\t\tstridesX[1] - ( S7*stridesX[2] )\n\t\t];\n\t\tdv9 = [ // offset increment for outermost loop\n\t\t\tstridesX[0] - ( S8*stridesX[1] )\n\t\t];\n\t\tfor ( i = 1; i < arrays.length; i++ ) {\n\t\t\tsv = arrays[ i ].strides;\n\t\t\tdv0.push( sv[9] );\n\t\t\tdv1.push( sv[8] - ( S0*sv[9] ) );\n\t\t\tdv2.push( sv[7] - ( S1*sv[8] ) );\n\t\t\tdv3.push( sv[6] - ( S2*sv[7] ) );\n\t\t\tdv4.push( sv[5] - ( S3*sv[6] ) );\n\t\t\tdv5.push( sv[4] - ( S4*sv[5] ) );\n\t\t\tdv6.push( sv[3] - ( S5*sv[4] ) );\n\t\t\tdv7.push( sv[2] - ( S6*sv[3] ) );\n\t\t\tdv8.push( sv[1] - ( S7*sv[2] ) );\n\t\t\tdv9.push( sv[0] - ( S8*sv[1] ) );\n\t\t}\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays, the first dimensions have the fastest changing indices...\n\t\tS0 = shape[ 0 ];\n\t\tS1 = shape[ 1 ];\n\t\tS2 = shape[ 2 ];\n\t\tS3 = shape[ 3 ];\n\t\tS4 = shape[ 4 ];\n\t\tS5 = shape[ 5 ];\n\t\tS6 = shape[ 6 ];\n\t\tS7 = shape[ 7 ];\n\t\tS8 = shape[ 8 ];\n\t\tS9 = shape[ 9 ];\n\t\tdv0 = [ // offset increment for innermost loop\n\t\t\tstridesX[0]\n\t\t];\n\t\tdv1 = [\n\t\t\tstridesX[1] - ( S0*stridesX[0] )\n\t\t];\n\t\tdv2 = [\n\t\t\tstridesX[2] - ( S1*stridesX[1] )\n\t\t];\n\t\tdv3 = [\n\t\t\tstridesX[3] - ( S2*stridesX[2] )\n\t\t];\n\t\tdv4 = [\n\t\t\tstridesX[4] - ( S3*stridesX[3] )\n\t\t];\n\t\tdv5 = [\n\t\t\tstridesX[5] - ( S4*stridesX[4] )\n\t\t];\n\t\tdv6 = [\n\t\t\tstridesX[6] - ( S5*stridesX[5] )\n\t\t];\n\t\tdv7 = [\n\t\t\tstridesX[7] - ( S6*stridesX[6] )\n\t\t];\n\t\tdv8 = [\n\t\t\tstridesX[8] - ( S7*stridesX[7] )\n\t\t];\n\t\tdv9 = [ // offset increment for outermost loop\n\t\t\tstridesX[9] - ( S8*stridesX[8] )\n\t\t];\n\t\tfor ( i = 1; i < arrays.length; i++ ) {\n\t\t\tsv = arrays[ i ].strides;\n\t\t\tdv0.push( sv[0] );\n\t\t\tdv1.push( sv[1] - ( S0*sv[0] ) );\n\t\t\tdv2.push( sv[2] - ( S1*sv[1] ) );\n\t\t\tdv3.push( sv[3] - ( S2*sv[2] ) );\n\t\t\tdv4.push( sv[4] - ( S3*sv[3] ) );\n\t\t\tdv5.push( sv[5] - ( S4*sv[4] ) );\n\t\t\tdv6.push( sv[6] - ( S5*sv[5] ) );\n\t\t\tdv7.push( sv[7] - ( S6*sv[6] ) );\n\t\t\tdv8.push( sv[8] - ( S7*sv[7] ) );\n\t\t\tdv9.push( sv[9] - ( S8*sv[8] ) );\n\t\t}\n\t}\n\t// Resolve a list of pointers to the first indexed elements in the respective ndarrays:\n\tiv = offsets( arrays );\n\n\t// Shallow copy the list of views to an internal array so that we can update with reshaped views without impacting the original list of views:\n\tv = copyIndexed( views );\n\n\t// Iterate over the loop 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\tsetViewOffsets( views, iv );\n\t\t\t\t\t\t\t\t\t\t\tv[ 0 ] = strategyX.input( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\tfcn( v, opts );\n\t\t\t\t\t\t\t\t\t\t\tstrategyX.output( views[ 0 ] );\n\t\t\t\t\t\t\t\t\t\t\tincrementOffsets( iv, dv0 );\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tincrementOffsets( iv, dv1 );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tincrementOffsets( iv, dv2 );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tincrementOffsets( iv, dv3 );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tincrementOffsets( iv, dv4 );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tincrementOffsets( iv, dv5 );\n\t\t\t\t\t}\n\t\t\t\t\tincrementOffsets( iv, dv6 );\n\t\t\t\t}\n\t\t\t\tincrementOffsets( iv, dv7 );\n\t\t\t}\n\t\t\tincrementOffsets( iv, dv8 );\n\t\t}\n\t\tincrementOffsets( iv, dv9 );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullary10d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2025 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar numel = require( '@stdlib/ndarray-base-numel' );\nvar vind2bind = require( '@stdlib/ndarray-base-vind2bind' );\nvar copyIndexed = require( '@stdlib/array-base-copy-indexed' );\nvar zeros = require( '@stdlib/array-base-zeros' );\nvar setViewOffsets = require( './set_view_offsets.js' );\nvar offsets = require( './offsets.js' );\n\n\n// VARIABLES //\n\nvar MODE = 'throw';\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an ndarray.\n*\n* @private\n* @param {Function} fcn - wrapper for a one-dimensional strided array reduction function\n* @param {Array<Object>} arrays - ndarrays\n* @param {Array<Object>} views - initialized ndarray-like objects representing sub-array views\n* @param {NonNegativeIntegerArray} shape - loop dimensions\n* @param {IntegerArray} stridesX - loop dimension strides for the ndarray\n* @param {Object} strategyX - strategy for marshaling data to and from an ndarray view\n* @param {Options} opts - function options\n* @returns {void}\n*\n* @example\n* var ndarray2array = require( '@stdlib/ndarray-base-to-array' );\n* var getStride = require( '@stdlib/ndarray-base-stride' );\n* var getOffset = require( '@stdlib/ndarray-base-offset' );\n* var getData = require( '@stdlib/ndarray-base-data-buffer' );\n* var numelDimension = require( '@stdlib/ndarray-base-numel-dimension' );\n* var ndarraylike2scalar = require( '@stdlib/ndarray-base-ndarraylike2scalar' );\n* var gsorthp = require( '@stdlib/blas-ext-base-gsorthp' ).ndarray;\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var o = arrays[ 1 ];\n* return gsorthp( numelDimension( x, 0 ), ndarraylike2scalar( o ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = [ 12.0, 11.0, 10.0, 9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0 ];\n*\n* // Define an array shape:\n* var xsh = [ 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an ndarray-like object for the sort order:\n* var sortOrder = {\n* 'dtype': 'generic',\n* 'data': [ 1.0 ],\n* 'shape': [ 1 ],\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Initialize ndarray-like objects representing sub-array views:\n* var views = [\n* {\n* 'dtype': x.dtype,\n* 'data': x.data,\n* 'shape': [ 2, 2 ],\n* 'strides': [ 2, 1 ],\n* 'offset': x.offset,\n* 'order': x.order\n* },\n* {\n* 'dtype': sortOrder.dtype,\n* 'data': sortOrder.data,\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': sortOrder.offset,\n* 'order': sortOrder.order\n* }\n* ];\n*\n* // Define an input strategy:\n* function inputStrategy( x ) {\n* return {\n* 'dtype': x.dtype,\n* 'data': x.data,\n* 'shape': [ 4 ],\n* 'strides': [ 1 ],\n* 'offset': x.offset,\n* 'order': x.order\n* };\n* }\n*\n* // Define an output strategy:\n* function outputStrategy( x ) {\n* return x;\n* }\n*\n* var strategy = {\n* 'input': inputStrategy,\n* 'output': outputStrategy\n* }\n*\n* // Apply strided function:\n* nullarynd( wrapper, [ x, sortOrder ], views, [ 3 ], [ 4 ], strategy, {} );\n*\n* var arr = ndarray2array( x.data, x.shape, x.strides, x.offset, x.order );\n* // returns [ [ [ 9.0, 10.0 ], [ 11.0, 12.0 ] ], [ [ 5.0, 6.0 ], [ 7.0, 8.0 ] ], [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ]\n*/\nfunction nullarynd( fcn, arrays, views, shape, stridesX, strategyX, opts ) {\n\tvar len;\n\tvar arr;\n\tvar iv;\n\tvar io;\n\tvar N;\n\tvar v;\n\tvar i;\n\tvar j;\n\n\tN = arrays.length;\n\n\t// Compute the total number of elements over which to iterate:\n\tlen = numel( shape );\n\n\t// Resolve a list of pointers to the first indexed elements in the respective ndarrays:\n\tiv = offsets( arrays );\n\n\t// Shallow copy the list of views to an internal array so that we can update with reshaped views without impacting the original list of views:\n\tv = copyIndexed( views );\n\n\t// Iterate based on the linear **view** index, regardless as to how the data is stored in memory...\n\tio = zeros( N );\n\tfor ( i = 0; i < len; i++ ) {\n\t\tfor ( j = 0; j < N; j++ ) {\n\t\t\tarr = arrays[ j ];\n\t\t\tio[ j ] = vind2bind( shape, arr.strides, iv[ j ], arr.order, i, MODE ); // eslint-disable-line max-len\n\t\t}\n\t\tsetViewOffsets( views, io );\n\t\tv[ 0 ] = strategyX.input( views[ 0 ] );\n\t\tfcn( v, opts );\n\t\tstrategyX.output( views[ 0 ] );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = nullarynd;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2025 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar ndarray2object = require( '@stdlib/ndarray-base-ndarraylike2object' );\nvar normalizeIndices = require( '@stdlib/ndarray-base-to-unique-normalized-indices' );\nvar indicesComplement = require( '@stdlib/array-base-indices-complement' );\nvar takeIndexed2 = require( '@stdlib/array-base-take-indexed2' );\nvar iterationOrder = require( '@stdlib/ndarray-base-iteration-order' );\nvar strides2order = require( '@stdlib/ndarray-base-strides2order' );\nvar numel = require( '@stdlib/ndarray-base-numel' );\nvar join = require( '@stdlib/array-base-join' );\nvar format = require( '@stdlib/string-format' );\nvar initializeViews = require( './initialize_array_views.js' );\nvar strategy = require( './strategy.js' );\nvar defaults = require( './defaults.js' );\nvar validate = require( './validate.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 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 BLOCKED_NULLARY = [\n\tblockednullary2d, // 0\n\tblockednullary3d,\n\tblockednullary4d,\n\tblockednullary5d,\n\tblockednullary6d,\n\tblockednullary7d,\n\tblockednullary8d,\n\tblockednullary9d,\n\tblockednullary10d // 8\n];\nvar MAX_DIMS = NULLARY.length - 1;\n\n\n// MAIN //\n\n/**\n* Returns a function for applying a one-dimensional strided array function to a list of specified dimensions in an ndarray.\n*\n* @private\n* @param {Options} [options] - function options\n* @param {boolean} [options.strictTraversalOrder=false] - boolean specifying whether to require that element traversal match the memory layout of the target ndarray\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {Function} function for applying a strided array function\n*\n* @example\n* var ndarray2array = require( '@stdlib/ndarray-base-to-array' );\n* var getStride = require( '@stdlib/ndarray-base-stride' );\n* var getOffset = require( '@stdlib/ndarray-base-offset' );\n* var getData = require( '@stdlib/ndarray-base-data-buffer' );\n* var numelDimension = require( '@stdlib/ndarray-base-numel-dimension' );\n* var ndarraylike2scalar = require( '@stdlib/ndarray-base-ndarraylike2scalar' );\n* var gsorthp = require( '@stdlib/blas-ext-base-gsorthp' ).ndarray;\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var o = arrays[ 1 ];\n* return gsorthp( numelDimension( x, 0 ), ndarraylike2scalar( o ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = [ 12.0, 11.0, 10.0, 9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0 ];\n*\n* // Define an array shape:\n* var xsh = [ 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an ndarray-like object for the sort order:\n* var sortOrder = {\n* 'dtype': 'generic',\n* 'data': [ 1.0 ],\n* 'shape': [ 1, 3 ],\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Apply strided function:\n* var f = factory();\n* f( wrapper, [ x, sortOrder ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( x.data, x.shape, x.strides, x.offset, x.order );\n* // returns [ [ [ [ 9.0, 10.0 ], [ 11.0, 12.0 ] ], [ [ 5.0, 6.0 ], [ 7.0, 8.0 ] ], [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] ]\n*\n* @example\n* var ndarray2array = require( '@stdlib/ndarray-base-to-array' );\n* var getStride = require( '@stdlib/ndarray-base-stride' );\n* var getOffset = require( '@stdlib/ndarray-base-offset' );\n* var getData = require( '@stdlib/ndarray-base-data-buffer' );\n* var numelDimension = require( '@stdlib/ndarray-base-numel-dimension' );\n* var ndarraylike2scalar = require( '@stdlib/ndarray-base-ndarraylike2scalar' );\n* var gsorthp = require( '@stdlib/blas-ext-base-gsorthp' ).ndarray;\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var o = arrays[ 1 ];\n* return gsorthp( numelDimension( x, 0 ), ndarraylike2scalar( o ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = [ 12.0, 11.0, 10.0, 9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0 ];\n*\n* // Define an array shape:\n* var xsh = [ 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an ndarray-like object for the sort order:\n* var sortOrder = {\n* 'dtype': 'generic',\n* 'data': [ 1.0 ],\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Apply strided function:\n* var f = factory();\n* f( wrapper, [ x, sortOrder ], [ 0, 1, 2, 3 ] );\n*\n* var arr = ndarray2array( x.data, x.shape, x.strides, x.offset, x.order );\n* // returns [ [ [ [ 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*/\nfunction factory( options ) {\n\tvar OPTS;\n\tvar err;\n\n\tOPTS = defaults();\n\tif ( arguments.length ) {\n\t\terr = validate( OPTS, options );\n\t\tif ( err ) {\n\t\t\tthrow err;\n\t\t}\n\t}\n\treturn nullaryStrided1d;\n\n\t/**\n\t* Applies a one-dimensional strided array function to a list of specified dimensions in an ndarray.\n\t*\n\t* @private\n\t* @param {Function} fcn - wrapper for a one-dimensional strided array function\n\t* @param {ArrayLikeObject<Object>} arrays - array-like object containing ndarrays\n\t* @param {IntegerArray} dims - list of dimensions to which to apply a strided array function\n\t* @param {Options} [options] - function options\n\t* @throws {Error} arrays must have the expected number of dimensions\n\t* @throws {RangeError} dimension indices must not exceed target ndarray bounds\n\t* @throws {RangeError} number of dimension indices must not exceed the number of target ndarray dimensions\n\t* @throws {Error} must provide unique dimension indices\n\t* @throws {Error} arrays must have the same loop dimension sizes\n\t* @returns {void}\n\t*/\n\tfunction nullaryStrided1d( fcn, arrays, dims, options ) {\n\t\tvar strategyX;\n\t\tvar views;\n\t\tvar ndims;\n\t\tvar ldims;\n\t\tvar opts;\n\t\tvar arr;\n\t\tvar tmp;\n\t\tvar len;\n\t\tvar shl;\n\t\tvar shc;\n\t\tvar shx;\n\t\tvar iox;\n\t\tvar scx;\n\t\tvar slx;\n\t\tvar ord;\n\t\tvar ns;\n\t\tvar d;\n\t\tvar s;\n\t\tvar N;\n\t\tvar M;\n\t\tvar K;\n\t\tvar x;\n\t\tvar i;\n\t\tvar j;\n\n\t\tif ( arguments.length > 3 ) {\n\t\t\topts = options;\n\t\t} else {\n\t\t\topts = {};\n\t\t}\n\t\t// Standardize ndarray meta data...\n\t\tN = arrays.length;\n\t\tarr = [];\n\t\tfor ( i = 0; i < N; i++ ) {\n\t\t\tarr.push( ndarray2object( arrays[ i ] ) );\n\t\t}\n\t\t// Cache a reference to the input array:\n\t\tx = arr[ 0 ];\n\n\t\t// Resolve the number of input array dimensions:\n\t\tshx = x.shape;\n\t\tndims = shx.length;\n\n\t\t// Verify that we've been provided a list of unique dimension indices...\n\t\tM = dims.length;\n\t\td = normalizeIndices( dims, ndims-1 );\n\t\tif ( d === null ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Third argument contains an out-of-bounds dimension index. Value: [%s].', join( dims, ',' ) ) );\n\t\t}\n\t\td.sort();\n\t\tif ( d.length !== M ) {\n\t\t\tthrow new Error( format( 'invalid argument. Third argument must contain a list of unique dimension indices. Value: [%s].', join( dims, ',' ) ) );\n\t\t}\n\t\t// Check whether we've been provided a valid number of dimensions...\n\t\tif ( M > ndims ) {\n\t\t\tthrow new RangeError( format( 'invalid argument. Number of specified dimensions cannot exceed the number of dimensions in the input array. Number of dimensions: %d. Value: [%s].', ndims, join( dims, ',' ) ) );\n\t\t}\n\t\t// Verify that provided ancillary ndarrays have the expected number of dimensions...\n\t\tK = ndims - M;\n\t\tfor ( i = 1; i < N; i++ ) {\n\t\t\tif ( arr[ i ].shape.length !== K ) {\n\t\t\t\tthrow new Error( format( 'invalid argument. Array arguments after the first array must have the same number of loop dimensions. Input array shape: [%s]. Number of loop dimensions: %d. Array shape: [%s] (index: %d).', join( shx, ',' ), K, join( arr[ i ].shape, ',' ), i ) );\n\t\t\t}\n\t\t}\n\t\t// Resolve the loop dimensions and associated strides:\n\t\tldims = indicesComplement( shx.length, d );\n\t\ttmp = takeIndexed2( shx, x.strides, ldims );\n\t\tshl = tmp[ 0 ];\n\t\tslx = tmp[ 1 ];\n\n\t\t// Resolve the core dimensions and associated strides:\n\t\ttmp = takeIndexed2( shx, x.strides, d );\n\t\tshc = tmp[ 0 ];\n\t\tscx = tmp[ 1 ];\n\n\t\t// Verify that provided ancillary arrays have the same loop dimensions...\n\t\tlen = 1; // number of elements\n\t\tns = 0; // number of singleton dimensions\n\t\tfor ( i = 0; i < K; i++ ) {\n\t\t\ts = shl[ i ];\n\t\t\tfor ( j = 2; j < N; j++ ) {\n\t\t\t\tif ( s !== arr[ j ].shape[ i ] ) {\n\t\t\t\t\tthrow new Error( format( 'invalid argument. Loop dimensions must be consistent across all provided arrays. Input array shape: [%s]. Loop dimension indices: [%s]. Loop dimensions: [%s]. Array shape: [%s] (index: %d).', join( shx, ',' ), join( ldims, ',' ), join( shl, ',' ), join( arr[ j ].shape, ',' ), j ) );\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Note that, if one of the dimensions is `0`, the length will be `0`...\n\t\t\tlen *= s;\n\n\t\t\t// Check whether the current dimension is a singleton dimension...\n\t\t\tif ( s === 1 ) {\n\t\t\t\tns += 1;\n\t\t\t}\n\t\t}\n\t\t// Check whether we were provided empty ndarrays...\n\t\tif ( len === 0 || ( shc.length && numel( shc ) === 0 ) ) {\n\t\t\treturn;\n\t\t}\n\t\t// Initialize ndarray-like objects for representing sub-array views...\n\t\tviews = [\n\t\t\t{\n\t\t\t\t'dtype': x.dtype,\n\t\t\t\t'data': x.data,\n\t\t\t\t'shape': shc,\n\t\t\t\t'strides': scx,\n\t\t\t\t'offset': x.offset,\n\t\t\t\t'order': x.order\n\t\t\t}\n\t\t];\n\t\tinitializeViews( arr, views );\n\n\t\t// Determine the strategy for marshaling data to and from sub-array views of the input array before and after performing an operation:\n\t\tstrategyX = strategy( views[ 0 ] );\n\n\t\t// Determine whether we can avoid iteration altogether...\n\t\tif ( K === 0 ) {\n\t\t\treturn NULLARY[ K ]( fcn, arr, strategyX, opts );\n\t\t}\n\t\t// Determine whether we only have one loop dimension and can thus readily perform one-dimensional iteration...\n\t\tif ( K === 1 ) {\n\t\t\treturn NULLARY[ K ]( fcn, arr, views, shl, slx, strategyX, opts );\n\t\t}\n\t\t// Determine whether the loop dimensions have only **one** non-singleton dimension (e.g., shape=[10,1,1,1]) so that we can treat loop iteration as being equivalent to one-dimensional iteration...\n\t\tif ( ns === K-1 ) {\n\t\t\t// Get the index of the non-singleton dimension...\n\t\t\tfor ( i = 0; i < K; i++ ) {\n\t\t\t\tif ( shl[ i ] !== 1 ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor ( j = 0; j < N; j++ ) {\n\t\t\t\tarr[ j ].strides = [ arr[j].strides[i] ];\n\t\t\t}\n\t\t\tslx = [ slx[i] ];\n\t\t\treturn NULLARY[ 1 ]( fcn, arr, views, [ shl[i] ], slx, strategyX, opts ); // eslint-disable-line max-len\n\t\t}\n\t\tiox = iterationOrder( slx ); // +/-1\n\n\t\t// Determine whether we can avoid blocked iteration...\n\t\tord = strides2order( slx );\n\t\tif ( iox !== 0 && K <= 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) and the memory layouts are the same, we can leverage cache-optimal (i.e., normal) nested loops without resorting to blocked iteration...\n\t\t\treturn NULLARY[ K ]( fcn, arr, views, shl, slx, ord === 1, strategyX, opts ); // eslint-disable-line max-len\n\t\t}\n\t\t// Check whether blocked iteration is prohibited due to a requirement that the order of element traversal match the memory layout of a provided ndarray...\n\t\tif ( OPTS.strictTraversalOrder && K <= MAX_DIMS ) {\n\t\t\t// We have two choices here: (1) we could copy to contiguous memory or (2) we can perform normal nested loop iteration, even though this is not cache-optimal based on the assumption that, while this may hurt performance, for many cases (i.e., smaller ndarrays), this should be fine and likely better than performing a complete copy...\n\t\t\treturn NULLARY[ K ]( fcn, arr, views, shl, slx, ord === 1, strategyX, opts ); // eslint-disable-line max-len\n\t\t}\n\t\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\t// Determine whether we can perform blocked iteration...\n\t\tif ( K <= MAX_DIMS ) {\n\t\t\treturn BLOCKED_NULLARY[ K-2 ]( fcn, arr, views, shl, slx, strategyX, opts ); // eslint-disable-line max-len\n\t\t}\n\t\t// Perform linear view iteration without regard for how data is stored in memory (i.e., take the slow path)...\n\t\tnullarynd( fcn, arr, views, shl, slx, strategyX, opts );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = factory;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2025 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar factory = require( './main_factory.js' );\n\n\n// MAIN //\n\n/**\n* Applies a one-dimensional strided array function to a list of specified dimensions in an ndarray.\n*\n* @name nullaryStrided1d\n* @type {Function}\n* @param {Function} fcn - wrapper for a one-dimensional strided array function\n* @param {ArrayLikeObject<Object>} arrays - array-like object containing ndarrays\n* @param {IntegerArray} dims - list of dimensions to which to apply a strided array function\n* @param {Options} [options] - function options\n* @throws {Error} arrays must have the expected number of dimensions\n* @throws {RangeError} dimension indices must not exceed target ndarray bounds\n* @throws {RangeError} number of dimension indices must not exceed the number of target ndarray dimensions\n* @throws {Error} must provide unique dimension indices\n* @throws {Error} arrays must have the same loop dimension sizes\n* @returns {void}\n*\n* @example\n* var ndarray2array = require( '@stdlib/ndarray-base-to-array' );\n* var getStride = require( '@stdlib/ndarray-base-stride' );\n* var getOffset = require( '@stdlib/ndarray-base-offset' );\n* var getData = require( '@stdlib/ndarray-base-data-buffer' );\n* var numelDimension = require( '@stdlib/ndarray-base-numel-dimension' );\n* var ndarraylike2scalar = require( '@stdlib/ndarray-base-ndarraylike2scalar' );\n* var gsorthp = require( '@stdlib/blas-ext-base-gsorthp' ).ndarray;\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var o = arrays[ 1 ];\n* return gsorthp( numelDimension( x, 0 ), ndarraylike2scalar( o ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = [ 12.0, 11.0, 10.0, 9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0 ];\n*\n* // Define an array shape:\n* var xsh = [ 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an ndarray-like object for the sort order:\n* var sortOrder = {\n* 'dtype': 'generic',\n* 'data': [ 1.0 ],\n* 'shape': [ 1, 3 ],\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Apply strided function:\n* nullaryStrided1d( wrapper, [ x, sortOrder ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( x.data, x.shape, x.strides, x.offset, x.order );\n* // returns [ [ [ [ 9.0, 10.0 ], [ 11.0, 12.0 ] ], [ [ 5.0, 6.0 ], [ 7.0, 8.0 ] ], [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] ]\n*\n* @example\n* var ndarray2array = require( '@stdlib/ndarray-base-to-array' );\n* var getStride = require( '@stdlib/ndarray-base-stride' );\n* var getOffset = require( '@stdlib/ndarray-base-offset' );\n* var getData = require( '@stdlib/ndarray-base-data-buffer' );\n* var numelDimension = require( '@stdlib/ndarray-base-numel-dimension' );\n* var ndarraylike2scalar = require( '@stdlib/ndarray-base-ndarraylike2scalar' );\n* var gsorthp = require( '@stdlib/blas-ext-base-gsorthp' ).ndarray;\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var o = arrays[ 1 ];\n* return gsorthp( numelDimension( x, 0 ), ndarraylike2scalar( o ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = [ 12.0, 11.0, 10.0, 9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0 ];\n*\n* // Define an array shape:\n* var xsh = [ 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an ndarray-like object for the sort order:\n* var sortOrder = {\n* 'dtype': 'generic',\n* 'data': [ 1.0 ],\n* 'shape': [],\n* 'strides': [ 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Apply strided function:\n* nullaryStrided1d( wrapper, [ x, sortOrder ], [ 0, 1, 2 ] );\n*\n* var arr = ndarray2array( x.data, x.shape, x.strides, x.offset, x.order );\n* // returns [ [ [ 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*/\nvar nullaryStrided1d = factory();\n\n\n// EXPORTS //\n\nmodule.exports = nullaryStrided1d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2025 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isFunction = require( '@stdlib/assert-is-function' );\nvar mainFactory = require( './main_factory.js' );\nvar main = require( './main.js' );\n\n\n// MAIN //\n\n/**\n* Return a function for applying a one-dimensional strided array function to a list of specified dimensions in an ndarray.\n*\n* @param {Function} [fcn] - wrapper for a one-dimensional strided array function\n* @param {Options} [options] - function options\n* @param {boolean} [options.strictTraversalOrder=false] - boolean specifying whether to require that element traversal match the memory layout of the target ndarray\n* @throws {TypeError} options argument must be an object\n* @throws {TypeError} must provide valid options\n* @returns {Function} function for applying a strided array function\n*\n* @example\n* var ndarray2array = require( '@stdlib/ndarray-base-to-array' );\n* var getStride = require( '@stdlib/ndarray-base-stride' );\n* var getOffset = require( '@stdlib/ndarray-base-offset' );\n* var getData = require( '@stdlib/ndarray-base-data-buffer' );\n* var numelDimension = require( '@stdlib/ndarray-base-numel-dimension' );\n* var ndarraylike2scalar = require( '@stdlib/ndarray-base-ndarraylike2scalar' );\n* var gsorthp = require( '@stdlib/blas-ext-base-gsorthp' ).ndarray;\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var o = arrays[ 1 ];\n* return gsorthp( numelDimension( x, 0 ), ndarraylike2scalar( o ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = [ 12.0, 11.0, 10.0, 9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0 ];\n*\n* // Define an array shape:\n* var xsh = [ 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an ndarray-like object for the sort order:\n* var sortOrder = {\n* 'dtype': 'generic',\n* 'data': [ 1.0 ],\n* 'shape': [ 1, 3 ],\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Create a function for applying a strided function:\n* var sorthp = factory( wrapper );\n* // returns <Function>\n*\n* // Apply strided function:\n* sorthp( [ x, sortOrder ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( x.data, x.shape, x.strides, x.offset, x.order );\n* // returns [ [ [ [ 9.0, 10.0 ], [ 11.0, 12.0 ] ], [ [ 5.0, 6.0 ], [ 7.0, 8.0 ] ], [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] ]\n*/\nfunction factory() {\n\tvar nullary;\n\tvar nargs;\n\tvar fcn;\n\tvar f;\n\n\tnargs = arguments.length;\n\n\t// Case: factory()\n\tif ( nargs === 0 ) {\n\t\tnullary = main;\n\t\tf = wrap;\n\t}\n\t// Case: factory( fcn, opts )\n\telse if ( nargs > 1 ) {\n\t\tnullary = mainFactory( arguments[ 1 ] );\n\t\tfcn = arguments[ 0 ];\n\t\tf = apply;\n\t}\n\t// Case: factory( fcn )\n\telse if ( isFunction( arguments[ 0 ] ) ) {\n\t\tnullary = main;\n\t\tfcn = arguments[ 0 ];\n\t\tf = apply;\n\t}\n\t// Case: factory( opts )\n\telse {\n\t\tnullary = mainFactory( arguments[ 0 ] );\n\t\tf = wrap;\n\t}\n\treturn f;\n\n\t/**\n\t* Applies a one-dimensional strided array function to a list of specified dimensions in an ndarray.\n\t*\n\t* @private\n\t* @param {ArrayLikeObject<Object>} arrays - array-like object containing ndarrays\n\t* @param {IntegerArray} dims - list of dimensions to which to apply a strided array function\n\t* @param {Options} [options] - function options\n\t* @returns {void}\n\t*/\n\tfunction apply( arrays, dims, options ) {\n\t\tvar opts;\n\t\tif ( arguments.length > 2 ) {\n\t\t\topts = options;\n\t\t} else {\n\t\t\topts = {};\n\t\t}\n\t\treturn nullary( fcn, arrays, dims, opts );\n\t}\n\n\t/**\n\t* Applies a one-dimensional strided array function to a list of specified dimensions in an ndarray.\n\t*\n\t* @private\n\t* @param {Function} fcn - wrapper for a one-dimensional strided array function\n\t* @param {ArrayLikeObject<Object>} arrays - array-like object containing ndarrays\n\t* @param {IntegerArray} dims - list of dimensions to which to apply a strided array function\n\t* @param {Options} [options] - function options\n\t* @returns {void}\n\t*/\n\tfunction wrap( fcn, arrays, dims, options ) {\n\t\tvar opts;\n\t\tif ( arguments.length > 3 ) {\n\t\t\topts = options;\n\t\t} else {\n\t\t\topts = {};\n\t\t}\n\t\treturn nullary( fcn, arrays, dims, opts );\n\t}\n}\n\n\n// EXPORTS //\n\nmodule.exports = factory;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2025 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\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 one-dimensional strided array function to a list of specified dimensions in an ndarray.\n*\n* @module @stdlib/ndarray-base-nullary-strided1d\n*\n* @example\n* var ndarray2array = require( '@stdlib/ndarray-base-to-array' );\n* var getStride = require( '@stdlib/ndarray-base-stride' );\n* var getOffset = require( '@stdlib/ndarray-base-offset' );\n* var getData = require( '@stdlib/ndarray-base-data-buffer' );\n* var numelDimension = require( '@stdlib/ndarray-base-numel-dimension' );\n* var ndarraylike2scalar = require( '@stdlib/ndarray-base-ndarraylike2scalar' );\n* var gsorthp = require( '@stdlib/blas-ext-base-gsorthp' ).ndarray;\n* var nullaryStrided1d = require( '@stdlib/ndarray-base-nullary-strided1d' );\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var o = arrays[ 1 ];\n* return gsorthp( numelDimension( x, 0 ), ndarraylike2scalar( o ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = [ 12.0, 11.0, 10.0, 9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0 ];\n*\n* // Define an array shape:\n* var xsh = [ 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an ndarray-like object for the sort order:\n* var sortOrder = {\n* 'dtype': 'generic',\n* 'data': [ 1.0 ],\n* 'shape': [ 1, 3 ],\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Apply strided function:\n* nullaryStrided1d( wrapper, [ x, sortOrder ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( x.data, x.shape, x.strides, x.offset, x.order );\n* // returns [ [ [ [ 9.0, 10.0 ], [ 11.0, 12.0 ] ], [ [ 5.0, 6.0 ], [ 7.0, 8.0 ] ], [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] ]\n*\n* @example\n* var ndarray2array = require( '@stdlib/ndarray-base-to-array' );\n* var getStride = require( '@stdlib/ndarray-base-stride' );\n* var getOffset = require( '@stdlib/ndarray-base-offset' );\n* var getData = require( '@stdlib/ndarray-base-data-buffer' );\n* var numelDimension = require( '@stdlib/ndarray-base-numel-dimension' );\n* var ndarraylike2scalar = require( '@stdlib/ndarray-base-ndarraylike2scalar' );\n* var gsorthp = require( '@stdlib/blas-ext-base-gsorthp' ).ndarray;\n* var nullaryStrided1d = require( '@stdlib/ndarray-base-nullary-strided1d' );\n*\n* function wrapper( arrays ) {\n* var x = arrays[ 0 ];\n* var o = arrays[ 1 ];\n* return gsorthp( numelDimension( x, 0 ), ndarraylike2scalar( o ), getData( x ), getStride( x, 0 ), getOffset( x ) );\n* }\n*\n* // Create a data buffer:\n* var xbuf = [ 12.0, 11.0, 10.0, 9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0 ];\n*\n* // Define an array shape:\n* var xsh = [ 1, 3, 2, 2 ];\n*\n* // Define the array strides:\n* var sx = [ 12, 4, 2, 1 ];\n*\n* // Define the index offset:\n* var ox = 0;\n*\n* // Create an ndarray-like object:\n* var x = {\n* 'dtype': 'generic',\n* 'data': xbuf,\n* 'shape': xsh,\n* 'strides': sx,\n* 'offset': ox,\n* 'order': 'row-major'\n* };\n*\n* // Create an ndarray-like object for the sort order:\n* var sortOrder = {\n* 'dtype': 'generic',\n* 'data': [ 1.0 ],\n* 'shape': [ 1, 3 ],\n* 'strides': [ 0, 0 ],\n* 'offset': 0,\n* 'order': 'row-major'\n* };\n*\n* // Create a function for applying a strided function:\n* var sorthp = nullaryStrided1d.factory( wrapper );\n* // returns <Function>\n*\n* // Apply strided function:\n* sorthp( [ x, sortOrder ], [ 2, 3 ] );\n*\n* var arr = ndarray2array( x.data, x.shape, x.strides, x.offset, x.order );\n* // returns [ [ [ [ 9.0, 10.0 ], [ 11.0, 12.0 ] ], [ [ 5.0, 6.0 ], [ 7.0, 8.0 ] ], [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] ]\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"],
5
+ "mappings": "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",
6
+ "names": ["require_initialize_array_views", "__commonJSMin", "exports", "module", "initializeViews", "arrays", "out", "v", "i", "require_strategy", "__commonJSMin", "exports", "module", "iterationOrder", "minmaxViewBufferIndex", "ndarraylike2object", "assign", "ndarraylike2ndarray", "emptyLike", "identity", "x", "broadcast", "squeeze", "arr", "index", "sh", "sx", "reshape", "contiguous", "len", "iox", "xmmv", "ind", "copyToWorkspace", "workspace", "view", "copyFromWorkspace", "copy", "strategy", "ndims", "ns", "require_defaults", "__commonJSMin", "exports", "module", "defaults", "require_validate", "__commonJSMin", "exports", "module", "isObject", "hasOwnProp", "isBoolean", "format", "validate", "opts", "options", "require_increment_offsets", "__commonJSMin", "exports", "module", "incrementOffsets", "offsets", "inc", "i", "require_set_view_offsets", "__commonJSMin", "exports", "module", "setViewOffsets", "views", "offsets", "i", "require_offsets", "__commonJSMin", "exports", "module", "offsets", "arrays", "out", "i", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "takeIndexed", "copyIndexed", "zeros", "incrementOffsets", "setViewOffsets", "offsets", "blockednullary2d", "fcn", "arrays", "views", "shape", "stridesX", "strategyX", "opts", "bsize", "dv0", "dv1", "ov1", "sh", "s0", "s1", "sv", "ov", "iv", "i0", "i1", "j0", "j1", "N", "x", "v", "o", "k", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "takeIndexed", "copyIndexed", "zeros", "incrementOffsets", "setViewOffsets", "offsets", "blockednullary3d", "fcn", "arrays", "views", "shape", "stridesX", "strategyX", "opts", "bsize", "dv0", "dv1", "dv2", "ov1", "ov2", "sh", "s0", "s1", "s2", "sv", "ov", "iv", "i0", "i1", "i2", "j0", "j1", "j2", "N", "x", "v", "o", "k", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "takeIndexed", "copyIndexed", "zeros", "incrementOffsets", "setViewOffsets", "offsets", "blockednullary4d", "fcn", "arrays", "views", "shape", "stridesX", "strategyX", "opts", "bsize", "dv0", "dv1", "dv2", "dv3", "ov1", "ov2", "ov3", "sh", "s0", "s1", "s2", "s3", "sv", "ov", "iv", "i0", "i1", "i2", "i3", "j0", "j1", "j2", "j3", "N", "x", "v", "o", "k", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "takeIndexed", "copyIndexed", "zeros", "incrementOffsets", "setViewOffsets", "offsets", "blockednullary5d", "fcn", "arrays", "views", "shape", "stridesX", "strategyX", "opts", "bsize", "dv0", "dv1", "dv2", "dv3", "dv4", "ov1", "ov2", "ov3", "ov4", "sh", "s0", "s1", "s2", "s3", "s4", "sv", "ov", "iv", "i0", "i1", "i2", "i3", "i4", "j0", "j1", "j2", "j3", "j4", "N", "x", "v", "o", "k", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "takeIndexed", "copyIndexed", "zeros", "incrementOffsets", "setViewOffsets", "offsets", "blockednullary6d", "fcn", "arrays", "views", "shape", "stridesX", "strategyX", "opts", "bsize", "dv0", "dv1", "dv2", "dv3", "dv4", "dv5", "ov1", "ov2", "ov3", "ov4", "ov5", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "sv", "ov", "iv", "i0", "i1", "i2", "i3", "i4", "i5", "j0", "j1", "j2", "j3", "j4", "j5", "N", "x", "v", "o", "k", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "takeIndexed", "copyIndexed", "zeros", "incrementOffsets", "setViewOffsets", "offsets", "blockednullary7d", "fcn", "arrays", "views", "shape", "stridesX", "strategyX", "opts", "bsize", "dv0", "dv1", "dv2", "dv3", "dv4", "dv5", "dv6", "ov1", "ov2", "ov3", "ov4", "ov5", "ov6", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "sv", "ov", "iv", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "N", "x", "v", "o", "k", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "takeIndexed", "copyIndexed", "zeros", "incrementOffsets", "setViewOffsets", "offsets", "blockednullary8d", "fcn", "arrays", "views", "shape", "stridesX", "strategyX", "opts", "bsize", "dv0", "dv1", "dv2", "dv3", "dv4", "dv5", "dv6", "dv7", "ov1", "ov2", "ov3", "ov4", "ov5", "ov6", "ov7", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "sv", "ov", "iv", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "N", "x", "v", "o", "k", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "takeIndexed", "copyIndexed", "zeros", "incrementOffsets", "setViewOffsets", "offsets", "blockednullary9d", "fcn", "arrays", "views", "shape", "stridesX", "strategyX", "opts", "bsize", "dv0", "dv1", "dv2", "dv3", "dv4", "dv5", "dv6", "dv7", "dv8", "ov1", "ov2", "ov3", "ov4", "ov5", "ov6", "ov7", "ov8", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "sv", "ov", "iv", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "j8", "N", "x", "v", "o", "k", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "takeIndexed", "copyIndexed", "zeros", "incrementOffsets", "setViewOffsets", "offsets", "blockednullary10d", "fcn", "arrays", "views", "shape", "stridesX", "strategyX", "opts", "bsize", "dv0", "dv1", "dv2", "dv3", "dv4", "dv5", "dv6", "dv7", "dv8", "dv9", "ov1", "ov2", "ov3", "ov4", "ov5", "ov6", "ov7", "ov8", "ov9", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "s9", "sv", "ov", "iv", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "i9", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "j8", "j9", "N", "x", "v", "o", "k", "require_d", "__commonJSMin", "exports", "module", "nullary0d", "fcn", "arrays", "strategyX", "opts", "require_d", "__commonJSMin", "exports", "module", "copyIndexed", "incrementOffsets", "setViewOffsets", "offsets", "nullary1d", "fcn", "arrays", "views", "shape", "stridesX", "strategyX", "opts", "dv0", "S0", "iv", "i0", "v", "i", "require_d", "__commonJSMin", "exports", "module", "copyIndexed", "incrementOffsets", "setViewOffsets", "offsets", "nullary2d", "fcn", "arrays", "views", "shape", "stridesX", "isRowMajor", "strategyX", "opts", "dv0", "dv1", "S0", "S1", "sv", "iv", "i0", "i1", "v", "i", "require_d", "__commonJSMin", "exports", "module", "copyIndexed", "incrementOffsets", "setViewOffsets", "offsets", "nullary3d", "fcn", "arrays", "views", "shape", "stridesX", "isRowMajor", "strategyX", "opts", "dv0", "dv1", "dv2", "S0", "S1", "S2", "sv", "iv", "i0", "i1", "i2", "v", "i", "require_d", "__commonJSMin", "exports", "module", "copyIndexed", "incrementOffsets", "setViewOffsets", "offsets", "nullary4d", "fcn", "arrays", "views", "shape", "stridesX", "isRowMajor", "strategyX", "opts", "dv0", "dv1", "dv2", "dv3", "S0", "S1", "S2", "S3", "sv", "iv", "i0", "i1", "i2", "i3", "v", "i", "require_d", "__commonJSMin", "exports", "module", "copyIndexed", "incrementOffsets", "setViewOffsets", "offsets", "nullary5d", "fcn", "arrays", "views", "shape", "stridesX", "isRowMajor", "strategyX", "opts", "dv0", "dv1", "dv2", "dv3", "dv4", "S0", "S1", "S2", "S3", "S4", "sv", "iv", "i0", "i1", "i2", "i3", "i4", "v", "i", "require_d", "__commonJSMin", "exports", "module", "copyIndexed", "incrementOffsets", "setViewOffsets", "offsets", "nullary6d", "fcn", "arrays", "views", "shape", "stridesX", "isRowMajor", "strategyX", "opts", "dv0", "dv1", "dv2", "dv3", "dv4", "dv5", "S0", "S1", "S2", "S3", "S4", "S5", "sv", "iv", "i0", "i1", "i2", "i3", "i4", "i5", "v", "i", "require_d", "__commonJSMin", "exports", "module", "copyIndexed", "incrementOffsets", "setViewOffsets", "offsets", "nullary7d", "fcn", "arrays", "views", "shape", "stridesX", "isRowMajor", "strategyX", "opts", "dv0", "dv1", "dv2", "dv3", "dv4", "dv5", "dv6", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "sv", "iv", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "v", "i", "require_d", "__commonJSMin", "exports", "module", "copyIndexed", "incrementOffsets", "setViewOffsets", "offsets", "nullary8d", "fcn", "arrays", "views", "shape", "stridesX", "isRowMajor", "strategyX", "opts", "dv0", "dv1", "dv2", "dv3", "dv4", "dv5", "dv6", "dv7", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "sv", "iv", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "v", "i", "require_d", "__commonJSMin", "exports", "module", "copyIndexed", "incrementOffsets", "setViewOffsets", "offsets", "nullary9d", "fcn", "arrays", "views", "shape", "stridesX", "isRowMajor", "strategyX", "opts", "dv0", "dv1", "dv2", "dv3", "dv4", "dv5", "dv6", "dv7", "dv8", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "sv", "iv", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "v", "i", "require_d", "__commonJSMin", "exports", "module", "copyIndexed", "incrementOffsets", "setViewOffsets", "offsets", "nullary10d", "fcn", "arrays", "views", "shape", "stridesX", "isRowMajor", "strategyX", "opts", "dv0", "dv1", "dv2", "dv3", "dv4", "dv5", "dv6", "dv7", "dv8", "dv9", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "S9", "sv", "iv", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "i9", "v", "i", "require_nd", "__commonJSMin", "exports", "module", "numel", "vind2bind", "copyIndexed", "zeros", "setViewOffsets", "offsets", "MODE", "nullarynd", "fcn", "arrays", "views", "shape", "stridesX", "strategyX", "opts", "len", "arr", "iv", "io", "N", "v", "i", "j", "require_main_factory", "__commonJSMin", "exports", "module", "ndarray2object", "normalizeIndices", "indicesComplement", "takeIndexed2", "iterationOrder", "strides2order", "numel", "join", "format", "initializeViews", "strategy", "defaults", "validate", "blockednullary2d", "blockednullary3d", "blockednullary4d", "blockednullary5d", "blockednullary6d", "blockednullary7d", "blockednullary8d", "blockednullary9d", "blockednullary10d", "nullary0d", "nullary1d", "nullary2d", "nullary3d", "nullary4d", "nullary5d", "nullary6d", "nullary7d", "nullary8d", "nullary9d", "nullary10d", "nullarynd", "NULLARY", "BLOCKED_NULLARY", "MAX_DIMS", "factory", "options", "OPTS", "err", "nullaryStrided1d", "fcn", "arrays", "dims", "strategyX", "views", "ndims", "ldims", "opts", "arr", "tmp", "len", "shl", "shc", "shx", "iox", "scx", "slx", "ord", "ns", "d", "s", "N", "M", "K", "x", "i", "j", "require_main", "__commonJSMin", "exports", "module", "factory", "nullaryStrided1d", "require_factory", "__commonJSMin", "exports", "module", "isFunction", "mainFactory", "main", "factory", "nullary", "nargs", "fcn", "f", "wrap", "apply", "arrays", "dims", "options", "opts", "setReadOnly", "factory", "main"]
7
+ }